博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android无处不在,Android开发者大有可为
阅读量:5977 次
发布时间:2019-06-20

本文共 3784 字,大约阅读时间需要 12 分钟。

文| 谷歌开发技术专家 (GDE) 杨波 (Alpha)

Android Things 正式接替 Brillo 亮相,名称的改变带来了什么新的内容,广大 Android 开发者如何进入这一新的领域,通过本文,你不仅会了解 Android Things 的来龙去脉,也会直接通过代码来体验开发带给你的魅力。

Android无处不在,Android开发者大有可为

一. Android Everywhere

一张 Google I/O 2015上的旧图,清晰的展示了 Android 的历史和未来。

Android无处不在,Android开发者大有可为

1. Android

Android无处不在,Android开发者大有可为

处于中心的 Android Mobile,已经占据了全球手机市场绝大多数份额,几十亿部 Andriod 手机,构成了 Android 生态系统最坚实的基础。

2. Android TV

Android无处不在,Android开发者大有可为

随着着电视大屏发展的脚步,Android TV 也成了所有电视盒子和智能电视的不二之选,主要归功于 Android 硬件系统的开放、庞大的开发者群体、完整的工具链。如果说手机端还有 iOS 将近 20% 的份额,在 TV 端,目测 tvOS 不到 2%,Android TV 也就代表了整个智能电视,国内更是 100% 的 Android TV,Apple TV 没有国行版本。

3. Android Wear

Android无处不在,Android开发者大有可为

让你的应用跑在手表上,同样使用熟悉的开发工具,主要是面向海外的应用,由于国内 Android Mobile 严重分裂,而 Android Wear 需要依赖手机的支持。

4. Android Auto

Android无处不在,Android开发者大有可为

针对汽车的使用场景进行优化,有了 Android Auto 就不用上车后就是找电源线,然后开导航,再把手机放到各种架子上,而是直接把 Android Mobile 放到原生底座上,直接使用语音和易操作的中控大屏。

5. Android Chromebook

Android无处不在,Android开发者大有可为

从 Chrome 操作系统版本 M53 开始,可以直接使用 Chromebook 中的 Google Play Store 下载和使用 Android 应用,现在使用的 Gogole Chrome 版本是55,那么绝大多数已有 Chromebook 都已经支持 Android 应用,新的 Chromebook 自然都会支持。

Android 和 Chrome 两大系统的合并,除了带来了 Android 丰富的应用以外,对于用户最大的好处就是自动更新了,Chrome 自动下载更新,下次重新打开/启动时自动应用更新,从 Android Nougat 开始,Android 系统也将使用这种更新机制。

根据 IDC 报告,Chromebook 在 2016 年第一季度的出货量已经在美国市场超越了Mac,特别是由于教育市场的大量需求。

这里,还要注意,Chromebook 使用的 Chrome OS 和 Google Chrome 高度共享代码,既然 Android 应用可以在 Chromebook 上运行,当未来在 Mac/Windows/Linux 上可以时,你也不要感到惊讶。

二. Android Things

终于到了今天的主角登场,Android Things!先看外表:

Android无处不在,Android开发者大有可为

再看内部核心硬件:

Android无处不在,Android开发者大有可为

它的愿景就是将无数的的设备连接起来,Android Things 作为物联网的大脑,使用公开协议 Weave 与广大的传感器/外部设备进行对话。

不像 Android 其它系统,Android Things 大多数情况下只在后台以服务方式运行,没有显示屏,默默的与打印机、门锁、烤箱、灯泡、插座这些设备一起提供服务。

三. Android Things 全解析

1. Android Things 架构

先看 Brillo 和 Android Things 的架构图进行对比:

这是 Brillo:

Android无处不在,Android开发者大有可为

这是 Android Things:

Android无处不在,Android开发者大有可为

可以很清楚的看出来:

  • Brillo 使用 C/C++ 基于 NDK 进行开发,Android Things 通过 Java API 面向广大的 Android 和 Java 开发者,就算是新手,Android 的也是极易上手的。各位苦于嵌入式开发各种工具坑的福音到了,对于性能和底层要求高的部分仍然可以用 NDK 编写,在 Android Studio 里调试 NDK 代码也和 Java 代码一样的简单。

  • Android Studio,Android SDK,Play service 和 Firebase,这些工具和 Service 形成了完整易用的工具链。

  • Android Things 出生最晚,更新条件也是最好的,直接使用 Android Nougat 的自动后台更新机制,最大限度的提高系统的安全性。

2. 广泛的硬件平台支持

现在支持以下3款硬件:

1)Intel Edison

Android无处不在,Android开发者大有可为

2)NXP Pico

Android无处不在,Android开发者大有可为

3)Raspberry Pi 3

Android无处不在,Android开发者大有可为

3. Hello Android Things

买到的开发版都是没有装操作系统系统的,第一步先把 Android Things 刷到板子里。

4. Flash image (刷机):

以Intel Edison为例:

0.Android SDK Platform Tools 25.0.3以上,fastboot 工具添加到 PATH 环境变量中,以便从任意目录运行。

1. 下载后打Intel Flash Tool,加打开下载好的对应刷机包。

Android无处不在,Android开发者大有可为

2. 使用 USB 线链接 Edison,如果 Edison 没有显示,换 USB 口和线试试。

Android无处不在,Android开发者大有可为

3. Start to Flash(开始刷机)

Android无处不在,Android开发者大有可为

4. 使用 Fastboot 刷入系统镜像,此时需要几十秒,光 System.img 就有 500 多M。

Android无处不在,Android开发者大有可为

Android无处不在,Android开发者大有可为

5. 刷入 Google Service 镜像。

Android无处不在,Android开发者大有可为

6. 刷入 OEM 镜像。

Android无处不在,Android开发者大有可为

7. 重启

Android无处不在,Android开发者大有可为

8. 验证系统状态。

Android无处不在,Android开发者大有可为

如果出现以下 Error,把 Intel Flash Tool 关掉,重新连接下 USB。

Android无处不在,Android开发者大有可为

5. Connecting WIFI (联网)

依然是熟悉的 adb 命令和服务启动参数

Android无处不在,Android开发者大有可为

用 logcat 查看网络状态

Android无处不在,Android开发者大有可为

Ping 检测

Android无处不在,Android开发者大有可为

6. Hello Android Things 项目

1. Android Studio 中新建项目。

Android无处不在,Android开发者大有可为

Android无处不在,Android开发者大有可为

2.在 build.gralde 中添加依赖 com.google.android.things:androidthings

apply plugin: 'com.android.application'android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.geekdev.alpha.androidthings" minSdkVersion 24 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) provided 'com.google.android.things:androidthings:0.1-devpreview' compile 'com.android.support:appcompat-v7:25.1.0' testCompile 'junit:junit:4.12'}

此处依赖方式是 provided,让 Android Things 使用系统中的库。

7. 添加 activity

添加一个主 activity 并配置 AndroidManifest.xml

Android无处不在,Android开发者大有可为

在 Activity 中输入 Hello World

8. 运行输出

直接 Command+R,可以在 logcat 窗口中看到结果了。

Android无处不在,Android开发者大有可为

Code

所有示例项目代码都可以在 Github 中找到:

github.com/alphayang/android-things-start

您可以在此访问文中所有链接:

alphayang.github.io/2016/12/24/android-things-for-iot-era

欢迎关注『谷歌开发者』官方微信公众号,与谷歌一起创造未来!

转载地址:http://arsox.baihongyu.com/

你可能感兴趣的文章
Springboot2.1.3 + redis 实现 cache序列化乱码问题
查看>>
各种资源思科、gns3……
查看>>
oracle基础之工具系列(持续更新中,,)
查看>>
利用命令清除和设定静态IP地址
查看>>
深挖BAT内部级别和薪资待遇
查看>>
利用 Android Studio 和 Gradle 打包多版本APK
查看>>
hdu1208
查看>>
struct 类型指针技巧
查看>>
POJ 1321 棋盘问题 题解
查看>>
js实现购物车数量的增加与减少,js实现购物车数量的自增与自减
查看>>
gitlab部署步骤+汉化
查看>>
linux清理缓存的命令
查看>>
jquery文本折叠
查看>>
验证码
查看>>
springmvc请求参数获取(自动绑定)的几种方法
查看>>
对导航条的改造
查看>>
python 异常处理
查看>>
原型与原型链
查看>>
Spring Boot 配置文件中的花样,看这一篇足矣!
查看>>
5 极限存在准则及两个重要极限
查看>>