在前面的章节,我们利用官方的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

package="com.chengxiang.thingsdemo">

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

... ...

5.声明主Activity

一个想运行到嵌入式设备的应用,必须在清单文件中声明一个Activity,作为系统启动后的主入口。应用包含下面属性的Intent Filger;

Action:ACTION_MAIN

Category:CATEGORY_DEFAUULT

Category:IOT_LAUNCHER

ThingsDemo\app\src\main\AndroidManifest.xml

package="com.chengxiang.thingsdemo">

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

... ...

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:找到占用端口的程序,并杀死。

欢迎大家关注“Android Things开发”微信公众号和加入讨论QQ群,在这里你可以获得Android Things相关的最新资讯,并且第一时间获得我的技术文章,和大家交流开发心得和遇到的问题噢!

Android的第一个工程,Android Things:撸起袖子来创建第一个Things工程相关推荐

  1. Swift基础:创建第一个Swift工程:Swift的基本语法

    苹果公司在今年的WWDC大会上,除了发布了iOS8和Max OS X 10.10之外,还发布了一个新的编程语言Swift.不得不说,Swift有较大的转变,也使编程变得更加容易了,下面介绍了Swift ...

  2. WatchOS系统开发大全(3)-创建第一个WatchApp工程

    创建第一个WatchApp工程 1.1-WatchOS2.0之后工程的创建 (1)点开xcode新建一个工程,选择Watch OS直接建一个Watch应用,点击next输入项目名称进行下一步 因为Wa ...

  3. 1. 创建第一个harmonyos工程

    文章目录 创建HarmonyOS第一个项目 创建第一个HarmonyOS项目 创建HarmonyOS第一个项目 环境准备: JDK安装. DevEco Studio安装. HarmonyOS SDK安 ...

  4. 通俗易懂学 android,第一章节:android系统结构图

    1.android就是一操作系统,说的再白点就是一个运行在LINUX操作系统上的视图软件, 所以"第一层"是linux系统,说好听就是LINUX内核 2.android这个系统是装 ...

  5. 手把手教你创建第一个Vivado工程

    文章目录 1.打开vivado后点击首页"Create Project" 2.开始创建工程 3.给工程命名并选择工程路径 4.选择创建RTL工程 5.选择芯片类型 6.完成工程创建 ...

  6. IntelliJ IDEA创建第一个Vue工程

    1.1  基本概念(基本概念来自网络学习) 1.1.1  node.js Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对C ...

  7. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第一章:Android开发环境搭建

    第 1 章 Android开发环境搭建 本章介绍了如何在个人电脑上搭建Android开发环境,主要包括:Android开发的发展历史是怎样的.Android Studio的开发环境是如何搭建的.如何创 ...

  8. android单元测试android环境,基于Robolectric的Android单元测试 —环境搭建与部署运行...

    移动端的测试中,因为回归一些逻辑分支比较多的功能时工作量比较大,且不太适合用UI完成,尝试通过单元测试来完成.几经波折终于完成了一个功能的UT用例并在CI上部署运行,现总结如下: 一.Robolect ...

  9. android:layout_marginbottom,解决relativelayout下android:marginbottom无效

    android:id="@+id/relativeLayout1″ android:layout_width="match_parent" android:layout_ ...

最新文章

  1. struct2 开发环境搭建 问题
  2. 从一道面试题,到“我可能看了假源码[2]
  3. ORA-16038的解决(日志无法归档)
  4. 【CodeForces - 501C】Misha and Forest (思维构造,树,数学异或)
  5. opengl画的弧线 为什么有一个半径_怪兽怎么画?简笔画怪兽教程来啦!跟孩子一起学习画萌萌的怪兽吧...
  6. windows 创建不可见账户
  7. fscapture设置中文_Fscapture是什么软件?有没有功能介绍?
  8. ethtool查看网卡以及修改网卡配置
  9. 第二章 python自定义函数与类(一)
  10. python实现qq自动点赞_python实现自动点赞
  11. 计算机找不到海信电视,海信电视突然看不了电视直播了,怎么解决?当贝市场良心分享...
  12. 娃娃乐学拼音软件许可及服务协议
  13. 我的spfa (= =)!
  14. 使用tensorflow2.x实现VGG
  15. scandir 参数
  16. 21Maven - 从私服下载jar包
  17. 【综述】NL2SQL (二) WikiSQL
  18. 《viva la vida》 歌词
  19. 回归,岭回归。LASSO回归
  20. 毕业设计 基于stm32的RFID与指纹识别的门禁系统 (项目开源)

热门文章

  1. python如何写二进制乘法_使用python写乘法口诀表
  2. NVIDIA Tesla K40C 和 AMD Firepro W8100 的对比
  3. Linux内核 eBPF基础:ftrace源码分析:过滤函数和开启追踪
  4. DPDK 跟踪库tracepoint源码实例分析
  5. Linux环境编程:fork系统调用及其陷阱 - 内存复用,文件不复用
  6. 一周文章导读:架构图;服务器;CPU
  7. segment段,setjmp和longjmp
  8. java i= i_java中 i!=i+1?你错了。 | 学步园
  9. Java实现RPC框架
  10. Javascript的数组操作(笔记)