⑴ android 7.0版本號是多少
API等級1:Android 1.0
API等級2:Android 1.1 Petit Four
API等級3:Android 1.5 Cupcake
API等級4:Android 1.6 Donut
API等級5:Android 2.0 Éclair
API等級6:Android 2.0.1 Éclair
API等級7:Android 2.1 Éclair
API等級8:Android 2.2 - 2.2.3 Froyo
API等級9:Android 2.3 - 2.3.2 Gingerbread
API等級10:Android 2.3.3-2.3.7 Gingerbread
API等級11:Android 3.0 Honeycomb
API等級12:Android 3.1 Honeycomb
API等級13:Android 3.2 Honeycomb
API等級14:Android 4.0 - 4.0.2 Ice Cream Sandwich
API等級15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich
API等級16:Android 4.1 Jelly Bean
API等級17:Android 4.2 Jelly Bean
API等級18:Android 4.3 Jelly Bean
API等級19:Android 4.4 KitKat
API等級20:Android 4.4W
API等級21:Android 5.0 Lollipop
API等級22:Android 5.1 Lollipop
API等級23:Android 6.0 Marshmallow
API等級24:Android 7.0 Nougat
⑵ Android應用如何監聽自己是否被卸載及卸載反
1,注冊BroadcastReceiver,監聽"android.intent.action.PACKAGE_REMOVED"系統廣播
結果:NO。未寫代碼,直接分析,卸載的第一步就是退出當前應用的主進程,而此廣播是在已經卸載完成後才發出的,此時主進程都沒有了,去哪onReceive()呢?
2,若能收到"將要卸載XX包"的系統廣播,在主進程被退出之前就搶先進行反饋處理就好了,可惜沒有這樣的系統廣播,不過經過調研,倒是發現了一個辦法,讀取系統log,當日誌中包含"android.intent.action.DELETE"和自己的包名時,意味著自己將要被卸載。
結果:NO。調試時發現此方法有兩個缺陷,(1)點擊設置中的卸載按鈕即發出此Intent,此時用戶尚未在彈框中確認卸載;(2)pm命令卸載不出發此Intent,意味著被諸如手機安全管家,豌豆莢等軟體卸載時,無法提前得知卸載意圖。
3,由於時間點不容易把控,所以乾脆不依賴系統廣播或log,考慮到卸載過程會刪除"/data/data/包名"目錄,我們可以用線程直接輪詢這個目錄是否存在,以此為依據判斷自己是否被卸載。
結果:NO。同方法1,主進程退出,相應的線程必定退出,線程還沒等到判斷目錄是否存在就已經被銷毀了。
4,改用C端進程輪詢"/data/data/包名"目錄是否存在
結果:YES。藉助Java端進程fork出來的C端進程在應用被卸載後不會被銷毀。
二 方案
Android自API1就有的一個類FileObserver,這個類用於監聽某個文件的變化狀態,如果是目錄,這個類還可以監聽其子目錄及子目錄文件的變化狀態,通過閱讀FileObserver源碼,發現其實現利用了Linux內核中一個重要的機制inotify,它是一個內核用於通知用戶空間程序文件系統變化的機制,詳情可參考http://en.wikipedia.org/wiki/Inotify,裡面對inotify有比較詳細的說明。
使用inotify的好處就在於不需要每1s的輪詢,這樣就不會無謂地消耗系統資源,使用inotify時會用read()方法阻塞進程,直到收到IN_DELETE通知,此時進程重新被喚醒,執行反饋處理流程。
三方案
阻塞結束後,通過調用exec函數發出am命令調起瀏覽器訪問網頁,在API16(Android 4.1.x)的設備上尚可正常訪問網頁,而API17(Android 4.2.x)的設備上連瀏覽器也不能調起。解決方案:增加處理分支,若API>=17,將userSerialNumber傳遞給C端進程,然後在am命令中帶上參數--user userSerialNumber即可
⑶ Android API 是什麼東西
API(Application
Programming
Interface,應用程序編程介面)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟體或硬體的以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節.
簡單來說,就是一套可供調用的系統介面.
⑷ 怎麼使用android 16的api
加入V4兼容包,AndroidManifest.xml里設置成:
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="16" />
project.properties這個文件配置成:target=android-16
這樣你開發的程序就可以兼容1.6——4.1版本的android手機了
⑸ Android各個版本的介紹
前言:筆者在面試的過程中,已經被問過不下三次,因此在這里分析一下。可能不夠詳細,請各位大佬多多包涵。
一、 版本對應的API 級別
API 級別:是對 Android 平台版本提供的框架 API 修訂版進行唯一標識的整數值。
1 ,Android 4.4 API 級別是19;
2,Android 5.0 API 級別:21;
3,Android 5.1 API 級別:22;
4,Android 6.0 API 級別:23;
5,Android 7.0 API 級別:24;
6,Android 7.1 API 級別:25;
7,Android 8.0 API 級別:26;
8,Android 8.1 API 級別:27;
9,Android 9 API 級別:28;
10,Android 10 API 級別:29;
二、版本變更
註:只舉一些常見的。
Android 4.4
1,文件的讀寫許可權,長期對文件進行讀寫;
2,增加了webview組件;
3,列印框架,通過 WLAN、藍牙或其他服務連接的列印機;
4,簡訊內容的提供,允許應用讀寫設備的簡訊和彩信;
5,NFC讀取
6,沉浸式
7,透明系統狀態欄
8,虛擬機的改變
Android 5.0
1,webview更新,增加了安全性和穩定性
2,錄屏功能
3,camera2
4,多個網路連接
5,藍牙低功耗
6,NFC增強
7,ART運行時取代了Dalvik成為平台默認設置
8,浮動窗口
Android 6.0
1,指紋身份認證
2,藍牙觸控筆並且改進藍牙低功耗
3,4K顯示
4,低功耗模式
5,USB連接授權與其他設備連接
6,APK驗證更為嚴格
Android 7.0
1,增強了低功耗模式,可以監聽到用戶的行為
2,屏幕縮放
3,快速安裝app
4,來電過濾
Android 8.0
1,自適應啟動圖標
2,增加了webview的安全性和穩定性
3,多顯示器支持,可以一邊聊天一邊看視頻
4,網路連接和 HTTP(S) 連接
5,藍牙,兼容藍牙5.0版本超過位元組約60的限制
Android 9
1,WIFI RTT可以室內定位
2,DEX 文件的 ART 提前轉換
Android 10
1,可折疊設備
2,5G網路
3,保護用戶隱私
4,安全性
5,ART 優化