Android介紹

一、安卓的起源

安卓(Android)是一種基于Linux內(nèi)核(不包含GNU組件)的自由及開放源代碼的操作系統(tǒng)。主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由美國Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。

二、安卓的系統(tǒng)版本

image.png
重要版本的發(fā)展史
重要的版本發(fā)展史.png

三、安卓的四層結(jié)構(gòu)

image.png

1、內(nèi)核層
android系統(tǒng)使用的是linux內(nèi)核,支持常見的一些linux命令。
2、運(yùn)行庫層
android app 運(yùn)行的環(huán)境
android 應(yīng)用的開發(fā)語言是java或者kotlin(可以看成輕量級(jí)java),java程序運(yùn)行需要java虛擬機(jī)(java 程序------------java 虛擬機(jī)--------------操作系統(tǒng))。
android 應(yīng)用中還可以內(nèi)嵌網(wǎng)頁,網(wǎng)頁的顯示需要瀏覽器渲染引擎(html->界面),android 系統(tǒng)中繼承了webkit渲染引擎。
android 應(yīng)用在沒有網(wǎng)絡(luò)的情況下如果想正常顯示,需要本地緩存數(shù)據(jù),數(shù)據(jù)可以保存到數(shù)據(jù)庫中。android 系統(tǒng)使用了輕量級(jí)的sqlite 數(shù)據(jù)庫(文件數(shù)據(jù)庫)。
3、應(yīng)用程序框架層
通過框架來降低開發(fā)的難度和工作量。
4、應(yīng)用程序?qū)?/code>
系統(tǒng)自帶應(yīng)用和用戶安裝的應(yīng)用

四、android應(yīng)用的四大組件

android應(yīng)用的開發(fā)工程師會(huì)利用一下的四種技術(shù)來實(shí)現(xiàn)一些功能。
1、activity活動(dòng)

(1).activity可以指代任何東西,比如一個(gè)界面或多個(gè)界面、某個(gè)接口(api)、某個(gè)控件等

以考研幫為例子:
1、先解壓考研幫apk的包
2、看看AndroidManifest.xml

002.png

3、查看app的包名:
03.png

image.png

2、serveice后臺(tái)服務(wù)
雖然看不到界面,但是在手機(jī)中默默運(yùn)行著一些程序,app的推送功能一般是通過后臺(tái)服務(wù)實(shí)現(xiàn)的。
3、boadcast receiver廣播接收
舉例:
比如玩游戲玩到一半,跳出提示'手機(jī)電量不足',如何實(shí)現(xiàn)?
實(shí)現(xiàn)方式:
第一步:
操作系統(tǒng)發(fā)現(xiàn)電量不足,發(fā)出一條廣播信息,通知大家'電量不足'
第二步:
該游戲app接收這條廣播信息,然后跳出提示
第三步:
選擇接收/不接收
4、content provider內(nèi)容提供
Android系統(tǒng)為了提升安全性,給每個(gè)APP自動(dòng)創(chuàng)建了用戶(即:每個(gè)APP都是不同的、獨(dú)立的用戶),通過用戶權(quán)限設(shè)置來將不同APP的數(shù)據(jù)或訪問硬件設(shè)備進(jìn)行隔離。但有時(shí)候,APP之間難免還是需要相互訪問數(shù)據(jù)的,這就需要使用“內(nèi)容提供”技術(shù)。
案例:
典型案例,微信要發(fā)送照片了,需要在2個(gè)app之間

五、android的資源文件

android-res.png

006.png

六、android系統(tǒng)權(quán)限控制

從V6.0開始,權(quán)限控制分為:

安裝時(shí)權(quán)限: 1.INTERNET 聯(lián)網(wǎng) 2.ACCESS_NETWORK_STATE 訪問網(wǎng)絡(luò)狀態(tài) 3.ACCESS_WIFI_STATE 訪問無線網(wǎng)絡(luò)狀態(tài) 4.READ_EXTERNAL_STORAGE 讀取外部存儲(chǔ) 5.BLUETOOTH 藍(lán)牙 等等
運(yùn)動(dòng)時(shí)權(quán)限: runtime-permission

007.png
權(quán)限在apk安裝包中的AndroidManifest.xml文件中設(shè)置
uses-permission
uses-feature(可選權(quán)限)
uses-feature.jpg

required屬性如果沒有指定,代表true
測(cè)試人員對(duì)于所測(cè)APP的權(quán)限控制(V6.0后分為兩部分)是需要進(jìn)行測(cè)試的(你可以說它是配置測(cè)試,但個(gè)人認(rèn)為它是需求級(jí)別的測(cè)試)
思考 - 考研幫APP支持沒有攝像頭的移動(dòng)設(shè)備使用嗎?
APP的編寫語言:
Android 系統(tǒng): Java或者Kotlin
IOS系統(tǒng): Object-C 或 swift

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android(安卓)是一種以 Linux 為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于便攜設(shè)備。2005 年由 Goog...
    fanhao812閱讀 6,250評(píng)論 0 0
  • Android框架 網(wǎng)上資料已經(jīng)一大堆了,咱們就從通俗易懂易理解的角度出發(fā),好,開始?。?! Android原始版本...
    世外大帝閱讀 712評(píng)論 0 3
  • 一、android系統(tǒng)架構(gòu)分為四層架構(gòu):Linux內(nèi)核層、系統(tǒng)運(yùn)行庫層、應(yīng)用框架層、應(yīng)用層。1.Linux內(nèi)核層:...
    Millie_tl閱讀 1,106評(píng)論 0 0
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,913評(píng)論 2 59
  • 一、簡(jiǎn)歷準(zhǔn)備 1、個(gè)人技能 (1)自定義控件、UI設(shè)計(jì)、常用動(dòng)畫特效 自定義控件 ①為什么要自定義控件? Andr...
    lucas777閱讀 5,372評(píng)論 2 54

友情鏈接更多精彩內(nèi)容