




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Android應用-底層過渡篇AndroidAndroid是開發(fā)的基于Linux的、開源的、智能操作系統(tǒng)。Android包括操作系統(tǒng)、中間件和應用程序,由于源代碼開放,Android可以被移植到不同的硬件上。2HTCG13與平板4Android的基石Dalvik Dalvik與JVM的區(qū)別Dalvik是基于寄存器的,JVM是基于棧的Dalvik經過優(yōu)化,允許在有限的內存里同時運行多個虛擬機實例,并且每一個Dalvik應用作為一個獨立的Linux進程執(zhí)行。這樣可以防止一個虛擬機其它虛擬機。時,不會影響6Android 的相關文件類型 Java 文件 - 應用程序源文件 Class 文件 - Ja
2、va 編譯后的目標文件 Dex 文件 -上的可執(zhí)行文件 APK文件 - Android 上的安裝文件7Android四大組件 Activity BroadcastReceiver Service Content Provider8Activity在Android的程序當中,Activity一般代表屏幕的一屏。如果把比作一個瀏覽器,那么Activity就相當于一個網頁。在Activity當中,可以添加一些View,并且可以對這些View做一些事件處理。ent就是一次對將要執(zhí)行的操作的抽象描述一個。通過ent可以在多個Activity之間進行跳轉ent中兩個最重要的部分是ent的動作(。Actio
3、n)和動作對應的數據(Data)。ent有關系的一個類叫ent Filters。如果說與ent是一個有效請求,一個ent Filters則用于描述一個Activity(或者ent Receiver)能夠操作哪ent。些9Broadcast Receiver可以使用BroadcastReceiver來讓應用對一個外部的事件做出響應。例如,當呼入這個外部事件到來的時候,可以利用BroadcastReceiver進行處理BroadcastReceiver不能生成UI,也就是說對于用戶來說不是透明的,用戶是看不到的。 BroadcastReceiver通過NotificationManager來通知用
4、戶這些事情發(fā)生了。BroadcastReceiver既可以在AndroidManifest.xml中,也可以在運行時的代碼中使用Context.registerReceiver()進行。只要了,當事件來臨的時候,即使程序沒有啟動,系統(tǒng)也在需要的時候啟動程序。各種應用還可以通過使用ContexdBroadcast()將它們自己的10。ent broadcasts廣播給其它應用程序ServiceService是一種程序,它可以運行很長的時間,但是它卻沒有用戶界面。這么說有點枯燥,例如:打開一個音樂器的程序,這個時候若想上網了,那么,Android的瀏覽器,這個時候雖然瀏覽器這個程序,但是,歌曲的打
5、開已經進入了并沒有停止,而是在繼續(xù)一首接著一首的。其實這音樂的Service進行控制。個就是由通過startService(ent service)可以來啟動一個Service,通過Context.bindService()可以綁定一個 Servcie。11Content Provider 數據在Android當中是私有的,當然這些數據包括文件數據和數據庫數據,以及一些其他類型的數據。一個Content Provider類實現(xiàn)了一組標準的方法接口此Content,從而能夠讓其它的應用保存或Provider的各種數據類型。12entent是一種運行時機制,它能在程序運行的過程中連接兩個不同的組件
6、。通過ent,你的程序可以向Android表達某種請求或者意愿,Android會根據意愿的內容選擇適當的組件來請求。Android里的Activity,Service,BroadcastReceiver, 它們都是通過ent機制進行激活調用的,而不ent的不同方式。同類型的組件有傳遞激活調用一個新的Activity或者讓一個現(xiàn)有的Activity執(zhí)行新的操作,可以通過調用Context.startActivity()或者 Activity.startActivityForResult()方法。這兩方法參數里要傳ent對象。遞進一個13Android里的控件按鈕(Button)文本框(TextV
7、iew)編輯框(EditText)多項選擇(CheckBox)單項選擇(RadioBox)下拉列表(Spinner)自動完成文本(pleteTextView)日期選擇器(Dat時間選擇器(Timcker)cker)滾動視圖(ScrollView)進度條(ProgressBar)拖動條(SeekBar)評分組件(Rating Bar)視圖(ImageView)按鈕(ImageButton)切換(ImageSwither&Gallery)列表視圖(ListView)網格視圖(GridView)(Tab) 14Android里的Jni調用機制 Android的HAL的實現(xiàn)需要通過JNI(JavaNa
8、tiveerface),JNI簡單來說就是java程序可以調用C/C+寫的動態(tài)庫,這樣的話,HAL可以使用C/C+語言編寫,效率更高。 對于像android這樣的,有很多的外層是需要操作的,如wifi,藍圍設備在牙,觸摸屏,重力感應,鍵盤等,如果直接通過java語言操作是很難實現(xiàn)的,JVM也無法模擬這些硬件。15Android里的Jni調用機制JNI是Java Nativeerface的縮寫,中文為JAVA本地調用。從Java1.1開始,Java Nativeerface(JNI)標準成為java的一部分,它允許Java代碼和其他語言寫的代碼進行交互。JNI一開始是為了本地已編譯語言,尤其是C
9、和C+而設計的,但是它并不妨礙你使用其他語言,只要調用約定受支持就可以了。使用java與本地已編譯的代碼交互,通常會喪失可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的,比如,使用一些舊的庫,與硬件、操作系統(tǒng)進行交互,或者為了提高程序的性能。JNI標準至少保證本地代碼能工作在任何Java虛擬機實現(xiàn)下。16Android里的Jni調用機制Java語言Jni語法和調用規(guī)則C, C+語言17將Java語言的數據類型轉換成底層語言數據類型。將Java語言的方法調用,轉換為調用底層語言函數或方法。Android里的Jni調用機制Jni在Java和C、C+等語言之間建立了一個橋梁作用,因此,JN
10、I首先要做的,就是兩者間的數據類型。類型,在JNI中都被定義為 jobject 類型,在所有其它C中都定義為void*。18Java Language TypeJNI TypejbytejbytecharjcharshortjshortjlongjlongfloatjfloatdoublejdoubleAndroid里的Jni調用機制 Java中可以直接調用底層語言的函數或方法,Jni規(guī)定了Java調用底層語言的方法簽名規(guī)范。19類型簽名Java 類型類型簽名Java 類型ZBbyteICcharFfloatSshortBbyteICcharJlongSshortFfloatDdoubleDdoubleJlongLfully-qualified- class(全限定的類)ZAndroid里的Jni調用機制 函數簽名通常是以下結構:返回值fun(參數1,參數2,參數3); 其對應的Jni方法簽名格式為:(參數1參數2參數3)返回值 注意:函數名,在Jni中沒有體現(xiàn)出來參數列表相挨著,中間沒有逗號,沒有空格返回值出現(xiàn)在()后面如果參數是類型,那么參數應該為:L類型;20Android里的Jni調用機制 練習 ()ZisLedOn(void);void setLedOn( (I)ledN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市交通智能化升級項目協(xié)議
- 旅游服務行業(yè)從業(yè)及表現(xiàn)證明(5篇)
- 機械工程原理及設備維護案例分析
- 農業(yè)領域產品種類表
- 藝德家政考試試題及答案
- 六一助殘活動方案
- 六一商場品牌活動方案
- 六一孩子活動方案
- 醫(yī)學考試試題及答案解析
- 六一扁食活動方案
- MOOC 家庭與社區(qū)教育-南京師范大學 中國大學慕課答案
- MOOC 創(chuàng)業(yè)管理-江蘇大學 中國大學慕課答案
- 考古發(fā)現(xiàn)與中國文化智慧樹知到期末考試答案2024年
- 小學數學強基計劃模擬測試3
- 幼兒園-大班-課件-《男孩女孩》
- 門診護士分診培訓課件
- 中職學考《職業(yè)道德與法律》考試復習題庫(含答案)
- 專兼職駕駛員培訓
- 2024年湖南省普通高中學業(yè)水平考試數學試卷及答案
- 0-3歲兒童中醫(yī)健康管理課件
- 債權融資方式
評論
0/150
提交評論