AndroidThing学习之路(一)

Android Things 是个什么东西

先到官网上看看:

https://developer.android.google.cn/things/index.html

点进去就可以看到了,你会看到学好英语的重要性;

https://developer.android.google.cn/things/preview/download.html

这个是开发版的下载地址,在后面的开发中会使用到;

Bringing Device Production to Everyone

这是开始对Android Things 的简介:大体的意思就是:每个人都可以开发设备产品;(我哥口号是不是很高大上啊!)

发布时间:

在看看一张图片:

Android Things 的架构和一些小的知识点

小的知识点:

>
1.Android Things是谷歌为Google Brillo更改名称后的新版系统,后者是谷歌在2015年宣布的一款物联网操作系统。尽管Brillo的核心是Android系统,但是它的开发和部署明显不同于常规Android开发。
>
2.Brillo把C++作为主要开发环境,而Android Things则面向所有Java开发者,不管开发者有没有移动开发经验。
>
3.开发者可以针对物联网设备使用工具包。Android Studio是最常用的Android集成开发环境,它基于IntelliJ IDEA开源社区版本,支持通过Android Things进行物联网开发。应用开发的生命周期几乎和移动开发相同。
>
4.Android Things系统支持原始Android SDK中的一个子集,不支持需要用户输入或者需要地图、搜索以及登录等验证凭证的应用程序接口(API)。
>
5.和Android手机的OTA无线升级一样,开发者可以通过谷歌已经在其产品和服务中使用过的相同OTA基础设施,推送谷歌提供的系统更新和定制应用升级。
>
6.谷歌推荐开发者在最初原型设计和开发时使用微型电脑“树莓派3”、英特尔微型可穿戴设备“爱迪生”(Edison)以及恩智浦半导体的Pico平台。谷歌会在Android Things正式发布前增加更多认证设备。
>
7.包括云消息传递服务Firebase在内的谷歌云平台组件能够轻易与Android Things整合。开发者可以利用多个云服务进行存储、状态管理以及发送消息。
>
8.Android Things整合了物联网设备通讯平台Weave。Weave Server是用来处理设备注册、命令传送、状态存储以及与谷歌助手等谷歌服务整合的云服务。Weave SDK将嵌入到设备中进行本地和远程通讯。
>
9.Nest智能家居设备使用的协议Nest Weave将成为Weave的一个子集。这两种协议都基于IPV6网络协议Thread,后者原本是为建立本地无线网状网络而设计的网络协议。
>
10.不管有没有Android Things,开发者都可以使用Weave,因为它是一个独立协议,可以作为Zigbee协议、Z-Wave协议以及蓝牙Bluetooth Smart协议的替代选择。

系统的架构

图片展示图:

系统架构的简介:

支持的开发版

图片展示:

主要介绍树莓派的开发:
简介一下子开发版:

之后就还需要的硬件有 面包板和公对公和公对母,和母对母的线.加上需要的电阻和面包板等配件;最最重要的是传感器和其他的想对应的硬件等.

简介之后就是开发环境的搭建

Android Things 是面向的是Java 的开发者,在前面引用的小的知识点中有看到.开发的工具也和开发app没什么大的区别;

注意点:

第一点就是: buildtools的版本是在 API的版本在24或者在24以上;
第二点: 编译的版本也需要的APPI 的版本也是在api的版本在24上

第三点: 创建Android Things的项目需要在gradle中设置下面的配置

配置一: Android Thing是的依赖:

// Android Things 的依赖
provided 'com.google.android.things:androidthings:0.1-devpreview'

配置二: 在清单文件中设置共享的library



配置Activity的action的筛选器


    
        
        
        
    

第四点: 就是AS的版本最低支持的是2.2的版本

开始开发

System Image Downloads 下载

我们在前面设置过一个是开发者的镜像文件的地址,我们直接进去根据相应的开发版下载开发镜像并设置的到里面.(这里选择树莓派3)

树莓派3的简介:

https://developer.android.google.cn/things/hardware/raspberrypi.html

各种开发版的镜像的下载地址:

https://developer.android.google.cn/things/preview/download.html

下载之后开始使用镜像烧录器烧到内存卡中

上传烧录器到博客中:

需要的话在我的博客的下载地址里面就有:

下载的连接地址: https://superb-dca2.dl.sourceforge.net/project/win32diskimager/Archive/win32diskimager-1.0.0-install.exe

具体的步骤和安装系统的安装镜像差不多.

上面只是烧录到SD卡中我们需要启动系统

连接hdmi接口用于启动的显示界面

之后背面插入SD卡.插入网线,之后插入电源并且通电.

完成之后会显示当前这个设备的IP地址.此时表示的就是系统启动成功了!

连接开发版开始运行项目

连接开发板的注意事项:

第一需要首先是把开发版连接到路由器上,获取到开发版的ip地址;

这里我们的设置的地址就是:192.168.247.101:5555

ip地址就是: 192.168.247.101 默认的端口就是 5555;

连接开发版的命令:

adb connect ip+pornt

adb connect 192.168.247.101

默认的端口就是5555;

出现: connected to 192.168.247.101:5555 此时表示的就是连接设备成功.

可以开始运行我们设置的以一个物联网的项目.

常用的adb命令

哈哈!实验了这么多的adb命令,忽然发现自己在进入 shell 之后使用 ctrl +c 不能退出,需要记忆一下。输入exit就可以了!

再来一个命令行清屏:

输入 cls 哈哈哈,世界和平!

代码展示:

C:\Users\Administrator>adb shell
shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $
130|shell@cancro:/ $ exit

C:\Users\Administrator>

http://blog.csdn.net/fenggit/article/details/47700953

adb全称: Android Debug Brige(桥) 俗称: Android dubug 调式桥

查看连接的设备: adb devices(注意是devices)

登录Android的终端 adb shell

出现vbox86p:/#: (模拟器直接获取到了root权限)

真机测试的结果:

输入 adb shell 之后出现的是: shell@cancro:/$

我们需要再次输入 su 来获取root权限
出现: 1|shell@cancro:/$

当有多个设备在线的时候怎么登录指定的设备的终端

C:\Users\Administrator>adb devices
List of devices attached
1d06513 device
8410023b        device

上面的代码中我有两个真机在线;第一个是获取到root权限的开发机

第二个是调式模式的手机(没有root)

1.进入指定设备的终端 adb -s 设备名称(不用最后的device) shell

之后出现的: C:\Users\Administrator>adb -s 8410023b shell
shell@natrium:/ $

再次输入 su来获取root

出现 /system/bin/sh: su: not found

对于第一个设备: 进入 adb -s 第一个设备 shell

出现: shell@cancro:/$ 再次输入 su

出现: 1|shell@cancro:/$

root@cancro:/ #

表示获取了超级权限。

安装apk的指令 adb install 安装的路劲 (最好不需要中文)

获取设备的序列号: adb get-serialno(最后是L,不是1;单个连接的时候有效);

设备是不是在线 : adb get-state(device表示设备在线;单个连接的时候有效,参数主要有三个,分别是device、offline(离线)、bootloader)

2.杀死adb服务进程

adb kill-server 终止adb的服务进程
adb start-server 重启adb服务进程

adb root 以root的权限重启adb服务

adbliatview获取硬件的信息(真机测试)

  1. 使用adb 来获取手机连接无线的MAC地址 adb shell cat /sys/class/net/wlan0/address(注意的是wlan后面是零不是字母o)

C:\Users\Administrator>adb shell cat /sys/class/net/wlan0/address
14:f6:5a:9d:98:48

  1. 使用adb获取连接手机的cpu信息

adb shell cat /proc/cpuinfo 获取wifi的mac地址

C:\Users\Administrator> adb shell cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 1 (v7l)
processor       : 0
BogoMIPS        : 38.40

processor       : 1
BogoMIPS        : 38.40

processor       : 2
BogoMIPS        : 38.40

processor       : 3
BogoMIPS        : 38.40

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x51
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0x06f
CPU revision    : 1

Hardware        : Qualcomm MSM8974PRO-AB
Revision        : 0000
Serial          : 0000000000000000

3.获取手机属性和手机的配置信息

adb shell cat /sysytem/build.prop

结果一大段,仔细看也能看出一些我们熟悉的

ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.4

4.获取wifi的配置信息

abd shell cat /data/misc/wifi/*.conf

需要root权限

  1. 查看进程列表

adb shell ps

6.查看后台的服务信息

adb shell service list

7.查看设备的存贮的设备名称

adb shell ls mnt

我使用的是小米测试机,展示的结果如下:

C:\Users\Administrator>adb shell ls mnt
asec
media_rw
obb
sdcard
secure
shell

8.将System挂载为可读写的分区

adb remount(为什么我的权限不够)

9.adb push文件到手机

adb push 【文件的地址】+ 【推送的地址】/mnt/sdcard/

C:\Users\Administrator>adb push C:\Users\Administrator\Desktop\2017-06-28_112931.png /mnt/sdcard/
[100%] /mnt/sdcard/2017-06-28_112931.png

我们在上面的adb命令中查询到了 设备的存贮的名称,(adb shell ls mnt)

查看存贮文件下面的命令:(例如查看sdcardd的文件列表)

根据我手机查看,sdcard在mnt/sdcard/只是一个快捷方式,里面的内容和 adb shell ls sdcard/下面的内容一致

第一次展示的是mnt/sdcard/下面的文件

C:\Users\Administrator>adb shell ls mnt/sdcard/
2.rar
2017-06-28_112931.png
360
360Log
5.2
AiguoRobot
Alarms
Android
AndroidStudy
BaiduAs35cb91f7
BaiduMap
BaiduMapSDK
BaiduMapSDKNew
BaiduNaviSDK
CloudDrive
DCIM
Download
FutureFamily
GDTDOWNLOAD
HB
KuaiShuo
MIUI
MiMarket
Mob
Movies
Music
Notifications
Pictures
Podcasts
QQBrowser
QTAudioEngine
QiYiVideo_Local
Renren
Ringtones
SINCEVOICE
SogouSpeech
ViaFly
XMCSee
XMFamily
XMSmartHome
amap
backup
backups
baidu
baiduTTS
chongdong
cn.inbot.padbotpad_48.apk
com.example.funsdkdemo
com.tencent.mobileqq
data
dianxin
doudou
etouch
evcard
fileImg.jpg
frespeechresult
iFlyIME
launcher_bg.jpg
libs
mi_drive
mipush
msc
netease
obb
oray
peiyinge
ramdump
sinovoice
sm
sns
sogou
speechcloud
system
tbs
temp
tencent
test.jpg
test.png
texttospeech
tmp
traces
unisound
voice_assist
voicenote
wzzyy
xiaoi
xunfei
yeelink
youmicache
鏂囧瓧杞闊充繚瀛樿闊?

之后进入的 sdcard/ adb shell ls sdcard/

C:\Users\Administrator>adb shell ls sdcard/
2.rar
2017-06-28_112931.png
360
360Log
5.2
AiguoRobot
Alarms
Android
AndroidStudy
BaiduAs35cb91f7
BaiduMap
BaiduMapSDK
BaiduMapSDKNew
BaiduNaviSDK
CloudDrive
DCIM
Download
FutureFamily
GDTDOWNLOAD
HB
KuaiShuo
MIUI
MiMarket
Mob
Movies
Music
Notifications
Pictures
Podcasts
QQBrowser
QTAudioEngine
QiYiVideo_Local
Renren
Ringtones
SINCEVOICE
SogouSpeech
ViaFly
XMCSee
XMFamily
XMSmartHome
amap
backup
backups
baidu
baiduTTS
chongdong
cn.inbot.padbotpad_48.apk
com.example.funsdkdemo
com.tencent.mobileqq
data
dianxin
doudou
etouch
evcard
fileImg.jpg
frespeechresult
iFlyIME
launcher_bg.jpg
libs
mi_drive
mipush
msc
netease
obb
oray
peiyinge
ramdump
sinovoice
sm
sns
sogou
speechcloud
system
tbs
temp
tencent
test.jpg
test.png
texttospeech
tmp
traces
unisound
voice_assist
voicenote
wzzyy
xiaoi
xunfei
yeelink
youmicache
鏂囧瓧杞闊充繚瀛樿闊?

pull文件(将手机的文件拉到电脑上)

格式: adb pull [文件在手机中的地址] [电脑上保存的地址]

我们这次将上次push进去的文件重命名之后到处到桌面

第一步: shell登录
adb shell

第二步 : 我们就进入 cd [空格] mnt/sdcard/ (sdcard是一个文件夹,要进入到里面)

第三部: 重命名 rename [需要重命名的文件名称.类别] [空格] [新的文件名.类别]

C:\Users\Administrator>adb shell
shell@cancro:/ $ cd mnt/sdcard/
shell@cancro:/mnt/sdcard $ rename test.png test1.png

第三步 pull到桌面

C:\Users\Administrator>adb pull /mnt/sdcard/test1.png c:\Users\Administrator\Desktop\
[100%] /mnt/sdcard/test1.png

10.删除文件

第一步: 进入文件目录 执行adb rm(remove) [文件的名称.类别]

删除 test1.png

注意: 进入后直接文件夹之后直接使用 rm 和使用重命名 rename是一样的

1|shell@cancro:/mnt/sdcard $ rm test1.png
shell@cancro:/mnt/sdcard $ exit

C:\Users\Administrator>adb shell ls sdcard/

11.综合的:

adb创建(目录)文件夹;设置文件夹(目录)他的权限,最后删除(目录)文件夹;同时给这个test目录push一个text文件,查看这个文件

第一步: 创建目录在mnt/obb/ 最后的结构是 /mnt/obb/test/text.txt

创建目录: 进入obb进行创建

C:\Users\Administrator>adb shell
shell@cancro:/ $ cd mnt/obb/
127|shell@cancro:/mnt/obb $ mkdir test
mkdir failed for test, Permission denied
255|shell@cancro:/mnt/obb $ su
root@cancro:/mnt/obb # mkdir test
C:\Users\Administrator>adb shell ls mnt/obb/
test

第二步,push 文件 test.txt;

C:\Users\Administrator>adb push C:\Users\Administrator\Desktop\text.txt /mnt/obb/
adb: error: failed to copy 'C:\Users\Administrator\Desktop\text.txt' to '/mnt/obb/text.txt': Permission denied

权限不够
我们直接push到sdcarad中

第三部: 查看文件

格式; adb shell cat [文件的完全路劲] 会将文件的内容展示到命令行,让我们查看.

C:\Users\Administrator>adb shell cat mnt/sdcard/text.txt
ceshi的文件夹
C:\Users\Administrator>

第四部: 设置 mnt/obb/test的权限

格式:adb shell 进入相应的目录 之后执行命令 chmod 777/666/665 文件夹或者是文件名称.类别

C:\Users\Administrator>adb shell
shell@cancro:/ $ su
root@cancro:/ #
root@cancro:/ # cd  mnt/obb/
root@cancro:/mnt/obb # chmod 777 test
root@cancro:/mnt/obb # chmod 666 test
root@cancro:/mnt/obb #

最后在手机上查看权限,第一次是 rwxrwxrwx
后一次是: rw-rw-rw-

adb修改文件权限的解释

第一点也是对最基础的知识点的复习:

二进制和八进制和十进制十六进制的定义:

进制是是一种进位制: 二进制表示的就是在数运算的时候逢二进; 八进制表示就是逢八进一,十进制就是逢十进一;十六进制就是逢十六进一;

第二点就是: 进制的由来:

二进制: 计算机中的任何数据都是以二进制的形式存在的,也就是0和1来表示的;

八进制: 由于使用二进制过于的长,人们使用三位的二进制数通过一个运算表示一位, 八进制的由来,三位的最大值是7,也就是二进制数为111;后面会直接进制之间的转化,最小是0,对应的二进制数是000;具体的转化请看下面.

十六进制: 八进制还是挺长的,使用同样的思想,能不能将四位的二进制表示为 一位;十六进制的诞生了!

十六进制也就是四个二进制 最大1111,十六进制最大就是f;十六进制表示的f转化为十进制就是15;最小就是0000;也就是0

十进制: 十进制也就是我们经常说到的整数就是十进制.

第三点: 进制的数据表现形式:

二进制: 组成0和1 是以0b开头,(B可以大小写)

八进制: 组成的部分是0到7(原因就是三位二进制表示一个八进制,最大的八进制就是是哪个111的二进制,表示的也就是7,最小是000也就是0); 开头就是0开头

十六进制: 十六进制是开头是以 0x开始的;组成是0到f数字是0到9,a到f,最大是1111,十六进制也就是f

十进制: 我们常见的整数就是十进制.

第四点:进制之间的转化:

哈哈!傻逼了吧!
* 2^0=1;任何非零的整数的o次幂都是一;*

任何进制转化为十进制

转化的原理;
第一个就是系数 也就是需要转化的进制数;
基数:需要转化的机制数是哪个进制 二进制那么基数就是二,八进制表示的基数就是8;十六进制数表示的基础就是16

权数: 去除进制数的开头;从右边开始进行全数的编号,一次是o开始.

计算的格式: 每一个系数*基数^对应的权数编号=结果(十进制数的结果)

第一解释: 八进制的组成是0到2,表示八进制最大的二进制是111,转化为十进制就是 1*2^2+1*2^1+1*2^0=4+2+1=7;
同理就是0;

0100(去除开始八进制就是100)转化为十进制就是: 1*8^2+0+0=64

十六进制转化为十进制:

ox100(一ox开头是一个十六进制数) 1*16^2+0+0=256

十进制转化为任意进制数

转化的原理:(除积倒余)
要转化的系数,除积就是需要转化为那种进制数,十进制数转化为二进制数,那么这个除积就是2;直道商为零,所得余数进行倒序反转.

打开画图的命令行: mspaint

十进制 100转化为二进制和八进制和十六进制:

#### 快速进行进制之间的转化 ####

8421码进行转化!

权限的解释: rwx r表示的是可read w表示的而是write x表示的是可执行的, rwx表示可读可写可执行; -表示没有这个权限
我们将具有权限写为1

那么 rwxrwxrwx 就是111 111 111 (都具有)
将其中的一个111 转化为十进制 7 也就是777的由来

看看 rw-rw-rw- 110110110,分别转化 666 二级制110 转化为十进制是6 二进制111转化为十进制是7,

命令行打开计算器 calc

安装开发的应用

Android Things 只允许安装一个应用,在安装其他应用时候确保卸载已经安装的应用.

adb 卸载应用: adb uninsatll [packagename]

你可能感兴趣的:(Android,Things,java基础)