Activiti概述
文章目錄
零、學(xué)習(xí)目標(biāo)
一、安卓平臺(tái)架構(gòu)
(一)安卓平臺(tái)架構(gòu)簡(jiǎn)述
1、Linux 內(nèi)核
2、硬件抽象層 (HAL)
3、安卓運(yùn)行時(shí)(Android Runtime)
4、原生 C/C++ 庫(kù)
5、Java API 框架
6、系統(tǒng)應(yīng)用
(二)安卓分層架構(gòu)優(yōu)點(diǎn)
二、安卓設(shè)備監(jiān)視器(ADM)
1、啟動(dòng)安卓設(shè)備監(jiān)視器
2、查看DDMS的File Explorer
三、安卓調(diào)試橋(ADB)
1、ADB作用
2、ADB操作演示
3、利用adb殺死和啟動(dòng)服務(wù)進(jìn)程
四、課后作業(yè)
1、利用百度腦圖繪制安卓體系架構(gòu)的思維導(dǎo)圖
2、按照講課筆記,完成DDMS與adb基本操作
3、設(shè)計(jì)用戶(hù)登錄窗口
零、學(xué)習(xí)目標(biāo)
能說(shuō)出安卓平臺(tái)架構(gòu)有哪幾層
會(huì)使用安卓設(shè)備監(jiān)視器,尤其是DDMS
會(huì)基本使用安卓調(diào)試橋ADB進(jìn)入安卓的Linxu內(nèi)核
一、安卓平臺(tái)架構(gòu)
Android 是一種基于 Linux 的開(kāi)放源代碼軟件棧,為各類(lèi)設(shè)備和機(jī)型而創(chuàng)建
Android平臺(tái)構(gòu)成的主要組件
(一)安卓平臺(tái)架構(gòu)簡(jiǎn)述
1、Linux 內(nèi)核
Android 平臺(tái)的基礎(chǔ)是 Linux 內(nèi)核。例如,Android Runtime (ART) 依靠 Linux 內(nèi)核來(lái)執(zhí)行底層功能,例如線程和低層內(nèi)存管理。
使用 Linux 內(nèi)核可讓 Android 利用主要安全功能,并且允許設(shè)備制造商為著名的內(nèi)核開(kāi)發(fā)硬件驅(qū)動(dòng)程序。
2、硬件抽象層 (HAL)
硬件抽象層 (HAL) 提供標(biāo)準(zhǔn)界面,向更高級(jí)別的 Java API 框架顯示設(shè)備硬件功能。HAL 包含多個(gè)庫(kù)模塊,其中每個(gè)模塊都為特定類(lèi)型的硬件組件實(shí)現(xiàn)一個(gè)界面,例如相機(jī)或藍(lán)牙模塊。當(dāng)框架 API 要求訪問(wèn)設(shè)備硬件時(shí),Android 系統(tǒng)將為該硬件組件加載庫(kù)模塊。
3、安卓運(yùn)行時(shí)(Android Runtime)
對(duì)于運(yùn)行 Android 5.0(API 級(jí)別 21)或更高版本的設(shè)備,每個(gè)應(yīng)用都在其自己的進(jìn)程中運(yùn)行,并且有其自己的 Android Runtime (ART) 實(shí)例。ART 編寫(xiě)為通過(guò)執(zhí)行 DEX 文件在低內(nèi)存設(shè)備上運(yùn)行多個(gè)虛擬機(jī),DEX 文件是一種專(zhuān)為 Android 設(shè)計(jì)的字節(jié)碼格式,經(jīng)過(guò)優(yōu)化,使用的內(nèi)存很少。編譯工具鏈(例如 Jack)將 Java 源代碼編譯為 DEX 字節(jié)碼,使其可在 Android 平臺(tái)上運(yùn)行。
在 Android 版本 5.0(API 級(jí)別 21)之前,Dalvik 是 Android Runtime。如果您的應(yīng)用在 ART 上運(yùn)行效果很好,那么它應(yīng)該也可在 Dalvik 上運(yùn)行,但反過(guò)來(lái)不一定。
Android 還包含一套核心運(yùn)行時(shí)庫(kù),可提供 Java API 框架所使用的 Java 編程語(yǔ)言中的大部分功能,包括一些 Java 8 語(yǔ)言功能。
4、原生 C/C++ 庫(kù)
許多核心 Android 系統(tǒng)組件和服務(wù)(例如 ART 和 HAL)構(gòu)建自原生代碼,需要以 C 和 C++ 編寫(xiě)的原生庫(kù)。Android 平臺(tái)提供 Java 框架 API 以向應(yīng)用顯示其中部分原生庫(kù)的功能。例如,您可以通過(guò) Android 框架的 Java OpenGL API 訪問(wèn) OpenGL ES,以支持在應(yīng)用中繪制和操作 2D 和 3D 圖形。
如果開(kāi)發(fā)的是需要 C 或 C++ 代碼的應(yīng)用,可以使用 Android NDK 直接從原生代碼訪問(wèn)某些原生平臺(tái)庫(kù)。
5、Java API 框架
您可通過(guò)以 Java 語(yǔ)言編寫(xiě)的 API 使用 Android OS 的整個(gè)功能集。這些 API 形成創(chuàng)建 Android 應(yīng)用所需的構(gòu)建塊,它們可簡(jiǎn)化核心模塊化系統(tǒng)組件和服務(wù)的重復(fù)使用,包括以下組件和服務(wù):豐富、可擴(kuò)展的視圖系統(tǒng),可用以構(gòu)建應(yīng)用的 UI,包括列表、網(wǎng)格、文本框、按鈕甚至可嵌入的網(wǎng)絡(luò)瀏覽器;資源管理器,用于訪問(wèn)非代碼資源,例如本地化的字符串、圖形和布局文件;通知管理器,可讓所有應(yīng)用在狀態(tài)欄中顯示自定義提醒;Activity 管理器,用于管理應(yīng)用的生命周期,提供常見(jiàn)的導(dǎo)航返回棧;內(nèi)容提供程序,可讓?xiě)?yīng)用訪問(wèn)其他應(yīng)用(例如“聯(lián)系人”應(yīng)用)中的數(shù)據(jù)或者共享其自己的數(shù)據(jù);開(kāi)發(fā)者可以完全訪問(wèn) Android 系統(tǒng)應(yīng)用使用的框架 API。
6、系統(tǒng)應(yīng)用
Android 隨附一套用于電子郵件、短信、日歷、互聯(lián)網(wǎng)瀏覽和聯(lián)系人等的核心應(yīng)用。平臺(tái)隨附的應(yīng)用與用戶(hù)可以選擇安裝的應(yīng)用一樣,沒(méi)有特殊狀態(tài)。因此第三方應(yīng)用可成為用戶(hù)的默認(rèn)網(wǎng)絡(luò)瀏覽器、短信 Messenger 甚至默認(rèn)鍵盤(pán)(有一些例外,例如系統(tǒng)的“設(shè)置”應(yīng)用)。
系統(tǒng)應(yīng)用可用作用戶(hù)的應(yīng)用,以及提供開(kāi)發(fā)者可從其自己的應(yīng)用訪問(wèn)的主要功能。例如,如果您的應(yīng)用要發(fā)短信,您無(wú)需自己構(gòu)建該功能,可以改為調(diào)用已安裝的短信應(yīng)用向您指定的接收者發(fā)送消息。
(二)安卓分層架構(gòu)優(yōu)點(diǎn)
Android系統(tǒng)采用分層架構(gòu)的思想,架構(gòu)清晰,層次分明,協(xié)同工作。
Android的系統(tǒng)架構(gòu)不僅從宏觀上認(rèn)識(shí)了Android系統(tǒng),同時(shí),也給我們的學(xué)習(xí)與實(shí)踐指明了方向。若是從事Android應(yīng)用開(kāi)發(fā),那應(yīng)該研究Android的應(yīng)用框架層和應(yīng)用程序?qū)?#xff1b;若是從事Android系統(tǒng)開(kāi)發(fā),那應(yīng)該研究Android的系統(tǒng)庫(kù)和Android運(yùn)行時(shí);若是從事Android驅(qū)動(dòng)開(kāi)發(fā),那應(yīng)該研究Android的Linux內(nèi)核。總之,找準(zhǔn)切入點(diǎn),實(shí)踐出真知。
二、安卓設(shè)備監(jiān)視器(ADM)
Android Device Monitor是 Android 開(kāi)發(fā)環(huán)境中虛擬機(jī)調(diào)試監(jiān)控服務(wù)。 它為我們提供例如:為測(cè)試設(shè)備截屏,針對(duì)特定的進(jìn)程查看正在運(yùn)行的線程以及堆信息、Logcat、廣播狀態(tài)信息、模擬電話呼叫、接收SMS、虛擬地理坐標(biāo)等等。
1、啟動(dòng)安卓設(shè)備監(jiān)視器
進(jìn)入安卓SDK目錄里的tools子目錄,找到monitor.bat
雙擊monitor.bat,啟動(dòng)安卓設(shè)備監(jiān)視器
啟動(dòng)安卓應(yīng)用【HelloWorld】
查看安卓設(shè)備監(jiān)視器,查看文件瀏覽器(File Explorer)與日志捕獲(LogCat)
2、查看DDMS的File Explorer
DDMS(Dalvik Debug Monitor Service)
data——內(nèi)存目錄
mnt——外存目錄
單擊data,目前無(wú)法查看其內(nèi)容
模擬器目前采用Android 7.0(API 24),改成Android 6.0(API 23)
點(diǎn)開(kāi)data/data,找到我們運(yùn)行的安卓程序:net.hw.helloworld
屏幕截圖的最后一行就是我們自己的安卓應(yīng)用:net.hw.helloworld
單擊mnt,查看其內(nèi)容
關(guān)于權(quán)限的簡(jiǎn)單說(shuō)明
sdcard: secure digital card
permission: 10位權(quán)限字符
1位:文件類(lèi)型(d:directory 目錄;l:link 鏈接;-:普通文件)
234位:表示文件所有者具有的權(quán)限(r——讀;w——寫(xiě);x——執(zhí)行)
567位:表示用戶(hù)組成員具有的權(quán)限(r——讀;w——寫(xiě);x——執(zhí)行)
8910位:表示非用戶(hù)組成員具有的權(quán)限(r——讀;w——寫(xiě);x——執(zhí)行)
從第2位到第10位,“-”表示不具有該權(quán)限。
三、安卓調(diào)試橋(ADB)
1、ADB作用
利用adb shell進(jìn)入Linux內(nèi)核進(jìn)行相關(guān)操作。
2、ADB操作演示
啟動(dòng)DOS,進(jìn)入adb程序所在目錄D:\Android\sdk\platform-tools
輸入adb shell命令,出現(xiàn)命令提示符#(如果是Android 7.0,那么提示符就是$)
進(jìn)入/data/data目錄
查看該目錄下的內(nèi)容
進(jìn)入data/data/com.android.providers.contacts/shared_prefs目錄查看ContactsUpgradeReceiver.xml文件內(nèi)容
鍵入exit命令,退出adb shell
3、利用adb殺死和啟動(dòng)服務(wù)進(jìn)程
遇到問(wèn)題:The connection to adb is down, and a severe error has occured.
首先關(guān)閉Android Studio集成開(kāi)發(fā)環(huán)境
啟動(dòng)DOS,進(jìn)入安卓SDK的platform-tools目錄
鍵入adb kill-server (殺死服務(wù)進(jìn)程)
再輸入 adb start-server(啟動(dòng)服務(wù)進(jìn)程)
四、課后作業(yè)
1、利用百度腦圖繪制安卓體系架構(gòu)的思維導(dǎo)圖
2、按照講課筆記,完成DDMS與adb基本操作
3、設(shè)計(jì)用戶(hù)登錄窗口
涉及的知識(shí)點(diǎn)
用到布局的嵌套實(shí)現(xiàn)復(fù)雜界面
居中對(duì)齊,利用線性布局的gravity屬性
標(biāo)簽、編輯框、按鈕三種控件
編輯框的提示信息,利用hint屬性
總結(jié)
以上是生活随笔為你收集整理的Activiti概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 钢材的弹性模量E等于多少?
- 下一篇: 常用布局