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

  1. apply plugin: 'com.android.application'
  2. android {
  3. ... ...
  4. }
  5. dependencies {
  6. compile fileTree(dir: 'libs', include: ['*.jar'])
  7. ... ...
  8. provided 'com.google.android.things:androidthings:0.1-devpreview'
  9. }

在你的清单文件中添加things共享库条目:
ThingsDemo\app\src\main\AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.chengxiang.thingsdemo">
  4. <application
  5. android:allowBackup="true"
  6. android:icon="@mipmap/ic_launcher"
  7. android:label="@string/app_name"
  8. android:supportsRtl="true"
  9. android:theme="@style/AppTheme">
  10. <uses-library android:name="com.google.android.things"/>
  11. ... ...
  12. </application>
  13. </manifest>

5.声明主Activity
一个想运行到嵌入式设备的应用,必须在清单文件中声明一个Activity,作为系统启动后的主入口。应用包含下面属性的Intent Filger;
  Action:ACTION_MAIN
  Category:CATEGORY_DEFAUULT
  Category:IOT_LAUNCHER
ThingsDemo\app\src\main\AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.chengxiang.thingsdemo">
  4. <uses-library android:name="com.google.android.things"/>
  5. <application
  6. ... ...
  7. android:theme="@style/AppTheme">
  8. <activity android:name=".MainActivity">
  9. <intent-filter>
  10. <action android:name="android.intent.action.MAIN"/>
  11. <category android:name="android.intent.category.LAUNCHER"/>
  12. </intent-filter>
  13. <!-- Launch activity automatically on boot -->
  14. <intent-filter>
  15. <action android:name="android.intent.action.MAIN"/>
  16. <category android:name="android.intent.category.IOT_LAUNCHER"/>
  17. <category android:name="android.intent.category.DEFAULT"/>
  18. </intent-filter>
  19. </activity>
  20. </application>
  21. </manifest>

6.编译运行
这里我们尝试使用gradle构建任务的方式编译和运行项目,运行如下:

  1. C:\Users\chengxiang.peng.QUNARSERVERS\AndroidThingsSources\ThingsDemo>gradle app:installDebug
  2. Starting a Gradle Daemon, 1 incompatible and 2 stopped Daemons could not be reused, use --status for details
  3. Incremental java compilation is an incubating feature.
  4. 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.
  5. :app:preBuild UP-TO-DATE
  6. ... ...
  7. :app:installDebug
  8. Unable to get density for device iot_rpi3 - 7.0
  9. Installing APK 'app-debug.apk' on 'iot_rpi3 - 7.0' for app:debug
  10. Installed on 1 device.
  11. BUILD SUCCESSFUL
  12. Total time: 1 mins 31.038 secs
  1. C:\Users\chengxiang.peng.QUNARSERVERS\AndroidThingsSources\ThingsDemo>adb shell am start com.chengxiang.thingsdemo/.MainActivity
  2. 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工程的更多相关文章

  1. ❤️【Android精进之路-03】创建第一个Android应用程序竟然如此简单❤️

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文会重点介绍如何创建第一个Android应用,以及如何使用Android Studio进行调试 干货满满,建议收藏,需要用到时常看看.小伙伴们如 ...

  2. Go入门:创建第一个Go工程

    前言 我是一名iOS开发. 因为公司后台都用的Go. 因为对服务端不了解. 所以想自己学习学习. 环境 因为自己的电脑是mac.然后在阿里云买的是centOS的服务器. 所以下面搭建的环境都是在cen ...

  3. 利用IntelliJ IDEA创建第一个Groovy工程

    因为某些原因,需要学习一下Groovy.关于Groovy的入门教程请看这篇文章http://www.ibm.com/developerworks/cn/education/java/j-groovy/ ...

  4. 创建第一个Hiberntae工程

    一.前言 很久之前已经对Hibernate有所了解,在项目中进行过简单的应用,基本了解hibernate的简单应用,没有深入的了解,来Shine公司快三个月了,公司的ORM框架就是用Hiberante ...

  5. Android中使用自身携带的Junit新建一个测试工程

    1.新建立一个Android工程 package com.shellway.junit; public class Service { public int divide(int a,int b){ ...

  6. 终于用scons创建了一个MDK工程

    这几天我在学着怎么使用RT-Thread.起初只想用一下里面的RTGUI,却一直没成功,功力实在不行啊. RT-Thread用了scons来创建工程,似乎还能编译,还有很多可配置项,很是方便.于是我想 ...

  7. UE4 Hello World 创建第一个UE4工程

    首先先熟悉几个UE4常用的类 AGameMode(控制整个项目的逻辑) The GameMode defines the game being played. It governs thegame r ...

  8. Spring Boot系列教程二:创建第一个web工程 hello world

    一.创建工程 创建名称为"springboot_helloworld"的spring boot工程, new->Spring Starter Project,直接上图     ...

  9. 创建第一个vue工程

    vue创建项目(npm安装→初始化项目) 第一步npm安装 首先:先从nodejs.org中下载nodejs   图1 双击安装,在安装界面一直Next   图2   图3   图4 直到Finish ...

随机推荐

  1. Nutch源码阅读进程3

    走了一遍Inject和Generate,基本了解了nutch在执行爬取前的一些前期预热工作,包括url的过滤.规则化.分值计算以及其与mapreduce的联系紧密性等,自我感觉nutch的整个流程是很 ...

  2. bootstrap中的对话框-dialog

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name= ...

  3. 20172302 《Java软件结构与数据结构》第八周学习总结

    2018年学习总结博客总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 教材学习内容总结 第十二章 优先队列与堆 1.堆(heap)是具有两个附加属性的一棵二叉树: (1)它是一 ...

  4. JVM调优总结(7):调优方法

    JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 ...

  5. 【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

    1.首先,java程序启动在linux,怎么生成dump文件? 1>第一步,首先你需要得到java程序的PID,最简单的方法使用如下命令 ps -ef|grep java 或者如果是docker ...

  6. android http中请求访问添加 cookie

    第一种HashMap<String, String> map = new HashMap<String, String>();map.put("cookie" ...

  7. Unity Shader-后处理:简单均值模糊

    一.简介   今天来学习一下后处理中比较常用的一种效果,屏幕模糊效果.模糊效果,在图像处理中经常用到,Photoshop中也有类似的滤镜.我们在游戏中也会经常用到.因为屏幕模糊效果是一些高级后处理效果 ...

  8. 这可能是最好的RxJava 2.x 入门教程(一)

    这可能是最好的 RxJava 2.x 入门教程系列专栏 文章链接: 这可能是最好的 RxJava 2.x 入门教程(完结版)[重磅推出] 这可能是最好的RxJava 2.x 入门教程(一) 这可能是最 ...

  9. 奇怪吸引子---LorenaMod2

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  10. [Canvas]双方战机展示

    源码点此下载,用chrome浏览器打开index.html观看. 图例: 代码: <!DOCTYPE html> <html lang="utf-8"> & ...