Develop系列—API Guides,developapiguides
介紹 應用基礎
app用Java語言編寫,以apk為尾碼。
apk運行在自身安全的沙箱中:
- Android是多使用者Linux系統,每個app就是一個不同的使用者
- 預設的,系統給每個app分配唯一的Linux使用者ID,並設定存取權限
- 每個進程有自己的虛擬機器VM
- 預設的,每個app運行在自己的Linux進程
android系統實行最小許可權原則。
然後,有兩種方式可以在不同app之間共用資料或者使用系統服務:
- 兩個app共用相同的Linux使用者ID,他們就能互相訪問各自的檔案,app必須是相同簽名的
- app可以申請許可權去訪問終端資料,比如使用者連絡人,簡訊息,SD卡,相機,藍芽等等,所有app許可權都必須在安裝時由使用者授權。
app組件 Activities
呈現單屏UI介面
Services
長時間在後台運行,無介面
Content providers
管理共用的app資料集,儲存方式包括檔案系統、SQLite資料庫、Web或者app能夠訪問的任意儲存位置
Broadcast receivers
廣播響應全系統的廣播通知,無介面,可以建立狀態列的通知
啟動組件 Intent
startActivity(), startActivityForResult()
startService(), bindService()
sendBroadcast(), sendOrderedBroadcast(), sendStickyBroadcast()
ContentResolver.query()
Manifest檔案 定義組件
<activity>
<service>
<receiver>
<provider>
activity, service, content provider 必須是在manifest裡面靜態註冊,而broadcast可以動態註冊
定義組件能力
顯式指定組件類名來啟動,或者隱式地通過intent filter來定義
定義app依賴項
Android終端眾多,為了保證app能夠在任意終端運行,需要定義app依賴啟動並執行軟硬體條件,比如,你的app需要照相功能並且運行在Android2.1(API LEVEL 7)版本之上,你需要定義如下依賴項:
<manifest ... > <uses-feature android:name="android.hardware.camera.any" android:required="true" /> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" /> ...</manifest>
這樣Google Play檢測到當前裝置沒有照相功能或者Android版本低於2.1就不能安裝你的應用。
如果你的app要用到照相功能,但不是必須使用,那可以將android:required設定為false,然後在運行時動態檢查裝置是否具有照相功能,來相容不同的裝置。
app資源
任何一個非代碼的資源檔,SDK編譯工具會定義一個唯一的整型ID,這樣能夠被代碼或其他資源索引到。
資源檔夾支援多種限定詞來進行全球化、橫豎屏等多情境的相容。
(源自:http://developer.android.com/guide/components/fundamentals.html)
話說oracle官網有jni的文檔?找了很久只找到了api文檔
是不是指這樣的文檔
docs.oracle.com/...C.html
android開發 怎實現圖片箭頭的?
tabhost已經不建議使用了,考慮下fragmenttabhost,效果差不多。