Android Things:撸起袖子来创建第一个Things工程
http://blog.csdn.net/p106786860/article/details/60161020
——————————————————————————————————————————————————————————————————————————————————————
在前面的章节,我们利用官方的sample-simplepio项目的blink模块,给大家演示了如何导入和运行现成的Android Things工程。那么这个章节,我们来手把手的给大家演示,如何从零开始创建、开发和运行一个Android Things项目。
1.前期准备
在你开始创建你的Android Things项目之前,你必须完成以下事情:
更新你的SDK工具为24或者更高版本,更新的SDK工具可以让你能构建和测试Things应用。
更新你的SDK为Android 7.0(API 24)或者更高,更新的平台版本为Things应用提供了新的API。
Android Studio->Tools->Android->SDK Manager,如下图:
2.创建项目
前面我们已经看到了Android Things项目的开发环境、开发工具、项目结构和Android项目都是一致的,其实它就是一个Android项目。那么我们新创建一个Andoird项目ThingsDemo。
注意:创建和更新你的应用项目,为了访问Things新的API,你必须创建一个项目或者修改一个已存在的项目,它的目标为Android7.0(API 24)或者更高;
4.添加库
Android Things设备通过support library公开API,它并不是Android SDK的一部分。在你的app中声明Things Support Library依赖。
在你的应用级别的build.gradle文件中添加依赖映射:
ThingsDemo\app\build.gradle
- apply plugin: 'com.android.application'
- android {
- ... ...
- }
- dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- ... ...
- provided 'com.google.android.things:androidthings:0.1-devpreview'
- }
在你的清单文件中添加things共享库条目:
ThingsDemo\app\src\main\AndroidManifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.chengxiang.thingsdemo">
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <uses-library android:name="com.google.android.things"/>
- ... ...
- </application>
- </manifest>
5.声明主Activity
一个想运行到嵌入式设备的应用,必须在清单文件中声明一个Activity,作为系统启动后的主入口。应用包含下面属性的Intent Filger;
Action:ACTION_MAIN
Category:CATEGORY_DEFAUULT
Category:IOT_LAUNCHER
ThingsDemo\app\src\main\AndroidManifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.chengxiang.thingsdemo">
- <uses-library android:name="com.google.android.things"/>
- <application
- ... ...
- android:theme="@style/AppTheme">
- <activity android:name=".MainActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- <!-- Launch activity automatically on boot -->
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.IOT_LAUNCHER"/>
- <category android:name="android.intent.category.DEFAULT"/>
- </intent-filter>
- </activity>
- </application>
- </manifest>
6.编译运行
这里我们尝试使用gradle构建任务的方式编译和运行项目,运行如下:
- C:\Users\chengxiang.peng.QUNARSERVERS\AndroidThingsSources\ThingsDemo>gradle app:installDebug
- Starting a Gradle Daemon, 1 incompatible and 2 stopped Daemons could not be reused, use --status for details
- Incremental java compilation is an incubating feature.
- The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Object).skipWhenEmpty() instead.
- :app:preBuild UP-TO-DATE
- ... ...
- :app:installDebug
- Unable to get density for device iot_rpi3 - 7.0
- Installing APK 'app-debug.apk' on 'iot_rpi3 - 7.0' for app:debug
- Installed on 1 device.
- BUILD SUCCESSFUL
- Total time: 1 mins 31.038 secs
- C:\Users\chengxiang.peng.QUNARSERVERS\AndroidThingsSources\ThingsDemo>adb shell am start com.chengxiang.thingsdemo/.MainActivity
- Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.chengxiang.thingsdemo/.MainActivity }
提示1:运行adb shell am start com.chengxiang.thingsdemo/.MainActivity命令的时候,报错error:unknown host service
分析1:因为运行adb命名需要使用5037端口,应该是某个程序占用的该端口,故报错。
处理1:找到占用端口的程序,并杀死。
1.新技术,新未来!欢迎大家关注“1024工场”微信服务号,时刻关注我们的最新的技术讯息。2.抛弃各种找元器件的烦恼,来“1024工场”微店,一次性买到你所想要的。3.加入“Android Things开发”QQ讨论群,一起学习一起Hi。(甭客气!尽情的扫描或者长按!)
Android Things:撸起袖子来创建第一个Things工程的更多相关文章
- ❤️【Android精进之路-03】创建第一个Android应用程序竟然如此简单❤️
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文会重点介绍如何创建第一个Android应用,以及如何使用Android Studio进行调试 干货满满,建议收藏,需要用到时常看看.小伙伴们如 ...
- Go入门:创建第一个Go工程
前言 我是一名iOS开发. 因为公司后台都用的Go. 因为对服务端不了解. 所以想自己学习学习. 环境 因为自己的电脑是mac.然后在阿里云买的是centOS的服务器. 所以下面搭建的环境都是在cen ...
- 利用IntelliJ IDEA创建第一个Groovy工程
因为某些原因,需要学习一下Groovy.关于Groovy的入门教程请看这篇文章http://www.ibm.com/developerworks/cn/education/java/j-groovy/ ...
- 创建第一个Hiberntae工程
一.前言 很久之前已经对Hibernate有所了解,在项目中进行过简单的应用,基本了解hibernate的简单应用,没有深入的了解,来Shine公司快三个月了,公司的ORM框架就是用Hiberante ...
- Android中使用自身携带的Junit新建一个测试工程
1.新建立一个Android工程 package com.shellway.junit; public class Service { public int divide(int a,int b){ ...
- 终于用scons创建了一个MDK工程
这几天我在学着怎么使用RT-Thread.起初只想用一下里面的RTGUI,却一直没成功,功力实在不行啊. RT-Thread用了scons来创建工程,似乎还能编译,还有很多可配置项,很是方便.于是我想 ...
- UE4 Hello World 创建第一个UE4工程
首先先熟悉几个UE4常用的类 AGameMode(控制整个项目的逻辑) The GameMode defines the game being played. It governs thegame r ...
- Spring Boot系列教程二:创建第一个web工程 hello world
一.创建工程 创建名称为"springboot_helloworld"的spring boot工程, new->Spring Starter Project,直接上图 ...
- 创建第一个vue工程
vue创建项目(npm安装→初始化项目) 第一步npm安装 首先:先从nodejs.org中下载nodejs 图1 双击安装,在安装界面一直Next 图2 图3 图4 直到Finish ...
随机推荐
- zip&ftp命令
zip: C:\Users\IBM_ADMIN>zip -09r Oracle.zip ./Oracle/* C:\Users\IBM_ADMIN>ftp ftp> open adm ...
- BZOJ.1005.[HNOI2008]明明的烦恼(Prufer 高精 排列组合)
题目链接 若点数确定那么ans = (n-2)!/[(d1-1)!(d2-1)!...(dn-1)!] 现在把那些不确定的点一起考虑(假设有m个),它们在Prufer序列中总出现数就是left=n-2 ...
- 洛谷.4717.[模板]快速沃尔什变换(FWT)
题目链接 https://www.mina.moe/archives/7598 //285ms 3.53MB #include <cstdio> #include <cctype&g ...
- 探究functools模块wraps装饰器的用途
<A Byte of Python>17.8节讲decorator的时候,用到了functools模块中的一个装饰器:wraps.因为之前没有接触过这个装饰器,所以特地研究了一下. 何谓“ ...
- TVTK库的安装
1.在网址为:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 里下载以下内容: VTK-7.1.1-cp36-cp36m-win_amd64.whlnumpy-1 ...
- 如何将Object类型转换成String类型
1. Object.toString() obj.toString() 注意:必须保证Object不是null值,否则将抛出NullPointerException异常. 2. (String)Obj ...
- [TenserFlow学习笔记]——安装
最近人工智能.深度学习.机器学习等词汇很是热闹,所以想进一步学习一下.不一定吃这口饭,但多了解一下没有坏处.接下来将学习到的一些知识点做一下记录. 1.安装环境 在VMWare虚拟机中安装最新版本的U ...
- iOS CrashLog Analysis
链接: iOS友盟崩溃日志定位代码 [友盟统计报表解读]之错误分析iOS版 DYSMTool Download Address 利用友盟和dsym分析发布app用户错误 iOS -- 友盟工具进行Cr ...
- python 环境搭建和Spyder的安装应用
http://blog.csdn.net/BurneAris/article/details/75214976
- 【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码
1.首先,java程序启动在linux,怎么生成dump文件? 1>第一步,首先你需要得到java程序的PID,最简单的方法使用如下命令 ps -ef|grep java 或者如果是docker ...