1. 程式人生 > >Android Things:擼起袖子來建立第一個Things工程

Android Things:擼起袖子來建立第一個Things工程

在前面的章節,我們利用官方的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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.chengxiang.thingsdemo">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <uses-library android:name="com.google.android.things"/>
        ... ...
    </application>
</manifest>
5.宣告主Activity
一個想執行到嵌入式裝置的應用,必須在清單檔案中宣告一個Activity,作為系統啟動後的主入口。應用包含下面屬性的Intent Filger;
  Action:ACTION_MAIN
  Category:CATEGORY_DEFAUULT
  Category:IOT_LAUNCHER
ThingsDemo\app\src\main\AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.chengxiang.thingsdemo">
    <uses-library android:name="com.google.android.things"/>

    <application
        ... ...
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <!-- Launch activity automatically on boot -->
            <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>
    </application>
</manifest>
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:找到佔用埠的程式,並殺死。

3.新技術,新未來!歡迎大家關注“1024工場”微信服務號,時刻關注我們的最新的技術訊息。4.加入“Android Things開發”QQ討論群,一起學習一起Hi。(甭客氣!盡情的掃描或者長按!)

相關推薦

Android Things袖子建立一個Things工程

在前面的章節,我們利用官方的sample-simplepio專案的blink模組,給大家演示瞭如何匯入和執行現成的Android Things工程。那麼這個章節,我們來手把手的給大家演示,如何從零開始建立、開發和執行一個Android Things專案。1.前期準備在你開始建

Spring Boot系列教程二建立一個web工程 hello world

一.建立工程 建立名稱為"springboot_helloworld"的spring boot工程, new->Spring Starter Project,直接上圖 點選“Fin

Flutter學習建立一個Flutter工程

在android studio 中建立一個Flutter專案 配置flutter環境,在Flutter下載SDK,解壓放到任何目錄下邊(除修改檔案需要許可權),如果現在cmd中操作,配置path環境變數,如:C:\Users\mm\flutter\bin,在cmd檢視:

一步一步學java二、使用idea15建立一個springboot架構的後臺介面程式

1.建立專案 2.建立一個名為HelloWorld的controller 3.配置程式 4.點選生成,執行,使用postman測試成功 5.打包(springboot一般都是打包成jar包,這裡打包成jar包,怎麼打包成war包,後面再

JavaWeb入門1.1 建立一個Web工程

Javaweb 入門學習1.1 建立第一個Web工程@TOC 1.使用測試框架時,將Junit4.jar,hamcrest-core.jar包匯入依賴中; 2.使用Jstl標籤庫時,需要匯入jstl.jar 和stanard.jar, 並且在web.xml 修改

QT學習筆記(建立一個QT工程

使用QT版本為5.6.1 1、選擇建立的工程型別 Application下列出了很多應用程式的模板。 Widgets Application:支援桌面平臺的有圖形使用者介面的應用程式。GUI的設計完全基於C++語言,採用Qt提供的C++類庫。 Console Ap

eclipse 基於 jdk1.8 建立一個 java 工程

1. 首先,開啟Eclipse,在工具欄依次點選【File】>>>【New】>>>【Other】 2. 在搜尋框裡輸入【java】,然後下面會列出符合要求的列表,我們點選一下【Java Project】,然後點選【Next】 3. 

IntelliJ IDEA 建立一個Mybatis工程

暑假的時候學習SSH三大框架,記得花了整整一個暑假才把他們學完,後來接觸了Mybatis,聽說易上手,所以就學習學習.,簡單總結一些兩者的區別吧: 1.兩者最大的區別: 針對簡單邏輯,Hibernate

利用IntelliJ IDEA建立一個Groovy工程

因為某些原因,需要學習一下Groovy。關於Groovy的入門教程請看這篇文章http://www.ibm.com/developerworks/cn/education/java/j-groovy/

使用Intellij Idea建立一個SpringMVC工程

    研究生入學跟老師做專案,之前沒有接觸過Spring,在看了近一個月的教學視訊後,發現也就那麼點東西,在這裡總結回顧一下,算是對Spring進行一下鞏固。順便推薦一下使用IDEA進行開發,我之前都是用Eclipse,可是轉到IDEA上之後簡直對它愛不釋手,

pycharm建立一個django工程

技術 all clas 角點 django col 一個 安裝django src pycharm建立第一個django工程 系統:win764 ip: 192.168.0.100 安裝django pip install django 左上角建立一個名為Fir

[學習筆記] 在Eclipse中使用Hibernate,並建立一個Demo工程,資料庫為Oracle XE

前文參考:Oracle 11g xe 在windows安裝 在Eclipse中使用Hibernate 安裝 Hibernate Tools 外掛 https://tools.jboss.org/downloads/ Add the following URL to your Eclipse 4.13 (2

Android 袖子,自己封裝 DialogFragment

6.0 最簡 標題欄 xtend animation 監聽 www. 特殊 nth 前言 具體的代碼以及示例我都放上 Github 了,有需要的朋友可以去看一下 DialogFragmentDemos,歡迎 star 和 fork. 本文的主要內容 DialogFra

袖子可勁幹

OS 編程 一次 鼓勵 小隨筆 程序猿 工作 北京 事情   在北京工作也有些時日啦,從離開學校的那一刻開始肩上的壓力真的是無比的沈重,也經歷的找工作的困難和一次次的白眼,但我始終堅信不是不到時候未到,沒有一帆風順的事情,現在終於穩定下來,雖然每天要加班待遇福利什麽的也是最

API 系列教程(三)使用 API Resource 建立自定義 JSON 格式的 API

上一篇教程中我們通過 jwt-auth 實現了 Laravel 的 API 認證。 使用者請求登入介面 http://apidemo.test/api/auth/login 登入成功後,獲取到 JSON 響應,響應頭會帶有 token 資訊。 Authorizatio

android studiores資料夾中建立menu資料夾

1、在res資料夾中建立menu資料夾這一步在eclipse中是比較簡單的,但在as中就有較大的不同了 2、下面就是建立menu資料夾的過程 1)依次選擇圖中紅色圈中的部分,注意不是藍色圈中的部分(

Android(1)建立一個android工程檔案

在啟動了android模擬器之後,便可以開始新建android工程了 (1)File--》New--》Android Application Project(或者File--》New--》Other--》Android--》Android Application Proje

3) 十分鐘學會android--建立一個APP,建立簡單的用戶界面

使用 圖標 run class 屏幕寬度 情況下 不可見 文本輸入框 nes 在本小節裏,我們將學習如何用 XML 創建一個帶有文本輸入框和按鈕的界面。下一節課將學會使 APP 對按鈕做出響應——按鈕被按下時,文本框裏的內容被發送到另外一個 Acti

【C++】筆記一Microsoft Visual Studio 2010軟件的安裝與建立一個cpp文件

軟件的安裝 aid 密碼 span win32控制臺 left 編寫 visual 五步 筆記一:Microsoft Visual Studio 2010軟件的安裝與建立第一個cpp文件 我學習C++使用軟件為Microsoft Visual Studio 2010。 首先

“全棧2019”Java四章建立一個Java程式

難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第四章:建立第一個Java程式 下一章 “