Android things 開發需要注意的一些
一、 android things 簡介:
2016年12月,谷歌第一次對外公佈了物聯網作業系統Android Things的開發者預覽版本。新版作業系統將能夠支援一系列物聯網裝置的計算平臺。Android Things是安卓系統的一個分支版本,類似於面向智慧手錶和穿戴裝置推出的Android Wear等。新版作業系統將能夠支援一系列物聯網裝置的計算平臺,其中包括英特爾公司的袖珍電腦“愛迪生”,NXP公司的Pico平臺,以及全世界最小的板卡式電腦“樹莓派3”。 一句話說,Android Things就是讓開發者可以使用Android開發工具開發嵌入式裝置。
1.1 Android Things的特性:
1.1.1 單一自啟動APP,通常裝置會只執行單一的程式,即開發者的APP會自動啟動,系統APP不會呈現出來。
1.1.2 顯示是可選的,裝置可以沒有螢幕,通過按鈕、觸控、LED燈、語音或其他形式與使用者互動。
1.1.3 提供了通過I/O驅動外設的介面,讓開發者可以與感測器和執行器進行通訊互動,支援GPIO、PWM、I2C、SPI和UART。
1.1.4 使用者驅動API,使用者驅動繼承Android Framework Services,允許APP將硬體事件注入到Framework中,使得其他APP可以使用標準的Android API訪問。
1.1.5 物聯網雲,通過Google物聯網雲平臺,開發者可以方便且安全的連線、管理數百萬計遍佈全球的裝置,並從中獲取資料。Google物聯網雲平臺和一些其他的Google服務,提供了包括資料採集、處理分析和視覺化物聯網資料的完整解決方案。
1.2 Android Things的優勢:
1.2.1 更統一的開發框架和介面
傳統的微控制器開發智慧硬體的方式,開發工具、開發介面多而雜,不同的微控制器廠商甚至型號,都有特定的開發工具,學習成本高,不統一,程式的可移植性差、可管理性差。Android Things提供更完善的開發框架,更方便好用的開發工具(而且是免費的)。
1.2.2 更適合Android開發者進行智慧裝置的創新
智慧硬體通常都要實現與伺服器互動、與手機互動,這些領域都是Android開發者熟悉的領域,通過Android Things開發智慧裝置,可以將Android開發者在移動開發方面的經驗更深入的體現在智慧裝置開發中。傳統的硬體、微控制器開發者,對移動開發不熟悉,自然會在智慧裝置創新中落後於對移動開發瞭如指掌的Android開發者。
1.2.3 更先進的基礎框架
Android Things相較於傳統的裝置平臺,就如同Android手機與Nokia功能機的區別。尤其在有觸控式螢幕人機互動的裝置中,Android的優勢明顯,Android對UI執行緒的優先和保障機制,使得傳統裝置人機介面操作卡頓的問題可以很好解決。Android基於Java的面向物件開發,也使得程式更容易封裝和管理。眾多的Android開源資源,也可以方便的應用到Android Things中來。我們開發的Android工業裝置智慧操作終端,在應用中給使用者提供了更好的操作體驗,受到了使用者的廣泛好評。
1.2.4 更安全的物聯網雲
傳統的物聯網方案,由於裝置端、服務端往往由不同的開發團隊完成,裝置端開發往往還停留在比較古老的開發階段,對一些新的安全物聯網協議瞭解較少,使得很多物聯網裝置,還在採用TCP協議明碼傳輸資料,很容易被截獲和篡改。而有資訊保安概念和經驗的服務端開發者,由於不瞭解硬體開發也無能為力。新聞報道過的一些智慧攝像頭被入侵的案例,很多與這方面有關。而Android Things徹底改變了這種狀況,手機APP與服務端通訊安全方面的經驗,Android開發者可以直接應用在裝置開發中。很多新的物聯網協議,如MQTT,都有Android的客戶端實現可以方便使用。
1.2.5 更豐富的雲服務資源
使用Android Things,有豐富的雲服務資源可以使用,可以基於TensorFlow實現人工智慧(如影象識別),可以通過Google Assistant獲得智慧服務。國內訪問Google服務目前還有一些問題,不過想一些辦法解決。同時,阿里、騰訊也都有一些智慧服務(如影象識別、人臉識別等)通過雲提供,使用Android Things也可以方便整合。
1.2.6 更低的入門門檻
傳統的智慧硬體開發,通常需要購買昂貴的開發套件,而Android Things只需要幾百塊錢買個開發套件接上顯示器或電視機就可以玩起來。如果你手上有樹莓派3,下載最新映象燒錄就可以玩了。
1.3 Android Things的劣勢:
1.3.1 成本
對於低成本的智慧小裝置,Android Things可能不適合,一個能流暢執行Android Things的硬體環境,成本也要200+。
1.3.2 硬體控制實時性
通過Android層對硬體進行控制,實時性肯定不及執行在微控制器中的主程式程序,所以直接用Android Things做一些對感測器高實時的掃描輪詢,或是對電機進行伺服控制,這不是Android Things的優勢。
1.3.3 已有熟悉的硬體開發平臺
如果開發者已經有自己熟悉的硬體開發平臺,有微控制器開發經驗,但對Android開發並不熟悉,使用Android Things就有些得不償失
二、樹莓派3簡介:
樹莓派是世界上最流行的單板計算機,3 Model B是最新的版本,我們後面就使用它給大家介紹Android Things。它提供瞭如下配置:
1.一個雙核64位ARM Cortext-A53 1.2GHz CPU(512M的記憶體,在背面);
2.400 MHz GPU;
3.電源介面;
4.HDMI和DSI視訊介面;
5.音訊介面;
6.有線、無線網路和藍芽4.1模組;
7.4個USB 2.0介面;
8.40-針GPIO聯結器用於連線外設;
9.SD卡儲存(在側邊);
三、 用樹莓派開發android things:
:
3.1 連線系統:
連線好樹莓派開發板,啟動Android Things系統,並在開發電腦中使用adb connect命令連線到開發板(這樣你就可以在構建執行的時候選擇樹莓派開發板進行安裝了 );
3.2使用advanced ip scanner 檢視所連線的樹莓派的ip
如圖:製造商為Raspberry Pi Foundation 對應的IP 即為網路內連線樹莓派開發版。
3.3 連接出現錯誤
如果在連線時出現以下錯誤
一般出現這種情況都是因為其他其他程式佔用了5037埠(比如豌豆莢,刷機精靈等),
方法1:
通過以下命令可以找出哪個程序佔用了5037埠
netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 127.0.0.1:60478 ESTABLISHED 6312
TCP 127.0.0.1:5037 127.0.0.1:60479 ESTABLISHED 6312
TCP 127.0.0.1:5037 127.0.0.1:60480 ESTABLISHED 6312
TCP 127.0.0.1:5037 127.0.0.1:60481 ESTABLISHED 6312
TCP 127.0.0.1:5037 127.0.0.1:60482 ESTABLISHED 6312
我這邊找到的程序號是6312, 然後我們在工作管理員裡找到這個程序
如果這個程序不是adb, 結束它,再重啟adb就會成功了。
方法2:
如果使用方法一說的可能是5037埠被佔用,殺程序的方法不行,因為檢視Windows工作管理員中沒有發現5037埠被佔用
【解決方案一:】
1.輸入命令:adb nodaemon server,則dos頁面上顯示靜止,表示此命令正在執行
2.再開啟一個新的dos命令列視窗cmd
3.輸入adb devices,成功顯示目前連線的裝置
【解決方案二:】
1.請解壓ADB包裡面的所有檔案,複製到C:\Windows\SysWOW64目錄下
2.輸入adb devices,成功顯示目前連線的裝置
備註:貌似這個方法是針對WIN7 64位使用者,這個方法整完以後,解決方案一就失效啦
3.4 編譯gradle檔案配置要求:
dependencies {
//新增依賴
provided 'com.google.android.things:androidthings:1.0'
}
**android things 要求SDK Tools為24或者更高版本;
Android SDK為7.0(API 24)或者更高版本;**
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.androidthings.simpleui"
minSdkVersion 25
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
3.5 . android things 沒有像手機那樣的launcher ,所以app要設定開機自啟動
<activity android:name=".SimpleUiActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--在系統啟動的時候自動啟動app-->
<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>
以上就是需要注意的,其他的就跟普通的android app一樣。
相關推薦
Android things 開發需要注意的一些
一、 android things 簡介: 2016年12月,谷歌第一次對外公佈了物聯網作業系統Android Things的開發者預覽版本。新版作業系統將能夠支援一系列物聯網裝置的計算平臺。Android Things是安卓系統的一個分支版本,類似於面
Java NIO開發需要注意的陷阱(轉)
轉自出處:http://www.cnblogs.com/pingh/p/3224990.html 陷阱1:處理事件忘記移除key 在select返回值大於0的情況下,迴圈處理 Selector.selectedKeys集合,每處理一個必須從Set中移除
Android 混合開發以及注意事項以及h5上圖片在android機器上不顯示問題
因為這個app地嵌入h5做導航,所以需要呼叫android的互動進行獲取定位資訊和其他一些功能,做的效果是H5調Android打電話以及呼叫android手機相簿選擇圖片,現在總結下: 一.打電話以及定位: 1.定義h5呼叫的名稱: webView.addJavascriptInt
Android Eclipse開發環境的一些操作問題
本文用於記錄在編譯調測過程中出現的小問題。這些不是程式碼的問題,主要是用Eclipse工具建立Android Project並執行模擬器上失敗的問題。[不能自動生成R.java]專案右鍵-》Android Tools -》 Clear Lint Markers,然後 Fix P
移動端開發需要注意
1、防止手機中網頁放大和縮小,這點是最基本的,最為手機網站開發者來說應該都知道的,就是設定meta中的viewport 使用viewport使頁面禁止縮放。 通常把user-scalable設定為0來關閉使用者對頁面檢視縮放的行為。 <meta name="viewport" co
叢集環境下開發需要注意哪些地方?
昨天有人問了我一個問題,一臺tomcat部署的應用,如果佈置到兩個tomcata中,編碼需要注意哪些,當時沒能回答上來,後來想想這就應該是一個叢集環境啊,叢集需要注意什麼呢,下來在網上看了一些資料,總結一下吧 1.Session,我們經常用session來封裝使用者的登入資
移動前端開發需要注意的20個要點
移動前端開發正逐漸步入前端技術的主流,事實上跟在一般的pc上,並不需要你掌握額外的技術,然而你在pc web上那一套在多數情況下並不適用於手機web,你必須知道這其中的注意點。當然移動web給人的感覺是一個拼h5和css3的陣地,這裡面有足夠高大上的技術等著你去駕馭。
Spark SQL 程式開發需要注意的要點
Spark SQL 程式開發過程中,我們有兩種方式確定 schema,第一種是反射推斷 schema,這種方式下,需要定義樣本類 (case class) 來對應資料的列;第二種方式是通過程式
Android Things 開發
Create an Android Things Project 建立一個Android Things 應用程式 1,Prerequisites:開發的前提條件 Before you begin building apps for Things
Okhttp3.0同步與非同步方法使用區別,同時需要注意一些細節問題
一、Okhttp3.0 execute 這是同步請求。對於同步請求在請求時需要開啟子執行緒,請求成功後需要跳轉到UI執行緒修改UI。 new Thread(new Runnable() { @Override public
手機/移動前端開發需要注意的20個要點
轉自:http://sentsin.com/web/54.html 賢心按:移動前端開發正逐漸步入前端技術的主流,事實上跟在一般的pc上,並不需要你掌握額外的技術,然而你在pc web上那一套在多數情況下並不適用於手機web,你必須知道這其中的注意點。當然移動web給人
後端框架開發需要注意的幾點
後端框架開發需要注意的幾點 筆者文筆功力尚淺,如有不妥,請慷慨指出,必定感激不盡 跌跌撞撞了在程式設計師的道路上也有一年的時間
安卓開發——Android6.0動態許可權申請步驟以及需要注意的一些坑
因為工作需要,簡單研究了一下Android6.0許可權申請,在Google提供的sample的基礎上,寫了一個簡單的demo。算是自己的筆記吧,可能會比較混亂,主要是方便以後檢視。後期有別的問題,隨時更新~ 6.0許可權的基本知識,以下是需要單獨申請的許可權,共分為9組,每組只要
以後需要注意的一些Java開發規範
這兩天把《阿里巴巴java開發手冊》看了一遍,整個手冊頁數並不多,裡面的內容都挺好,下面這些是選的自己以前沒有注意的或者感覺很有用的點。 程式設計規範 命名風格 10.【強制】杜絕完全不規範的縮寫,避免望文不知義。 反例: Abstract
Android 7.0你需要注意的一些坑。
一.安裝apk報錯:android.os.FileUriExposedException 1.在AndroidMainifest.xml檔案中新增: <provider android:name="android.sup
淺談Android開發中需要注意的安全問題
什麼是安全問題? 從黑客的角度定義,只要黑客能夠從app中找到一些方法獲取我們的原始碼根據某些明顯的欄位得到重要資訊從而修改程式以達到一定目的;竊取使用者資訊;竊取本地重要資訊間接可以
關於Android應用開發的一些安全註意事項
gui IT tracking output 技術 偽造 ger 每一個 idm 原文地址: http://www.javacodegeeks.com/2014/05
Android Studio多Module開發需要註意的問題
CI 完成 xen icon and schema In tools targe 多module開發,其中的一個為入口module,其他module為獨立的“應用”(library) 1.在原有的項目導入另外個項目的module為主項目的次module,即在A項目
android studio快捷鍵需要注意的地方
1:程式碼自動補齊:推薦使用none的形式: Editor—>General—>Code Completion:None 2:自動提示需要實現的方法快捷鍵設定: keymap—>Main Menu—>Code—>Implement Methods 3:設
演算法競賽中c++一些需要注意的錯誤
1. 關於精度: 取整 除法取整: (除數為正)被除數為正時系統除法為向下取整,被除數為負時系統除法為向上取整。 向上取整(被除數非負,除數為正): 一般寫法(有bug): int cal(int x,int y) { return (x-1)/y+1; } 上