- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
X86处理器架构介绍.ppt
系 統 實 作 Android Kernel 移植 手機撥打程式實做 校正: 利用tslib的校正工具ts_calibrate進行校正,校正後,產生檔案 /etc/pointercal。 系 統 實 作 Android Kernel 移植 手機撥打程式實做 Android AP開發環境建立 JNI介紹 Ubuntu底下撥打程式測試 package com.test; import android.app.Activity; import android.os.Bundle; public class TestHelloLib extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); printHello(); } static { System.loadLibrary(“hello”); } private native void printHello(); } 設計一個EditText輸入電話號碼,透過myButton1將電話號碼傳出。 Botton01 與 Botton02 個別傳送訊號至JNI下達 ATA 接聽外來電話 (ANSWER INCOMING CALL) ATH 斷開現有連接/掛斷電話(DISCONNECT EXISTING CONNECTION)指令。 外觀與功能架構 外觀與功能架構 使用者介面 JNI GSM模組 符合格式 來電訊號 撥出 掛斷 接聽 Yes No 輸入電話 透過Button物件聆聽onClick()事件,來觸動下達AT Command的JNI “android.permission.CALL_PHONE”為android 內建手機底層的服務,移植的系統並沒有 辦法成功啟用這項服務,所以設計將接收到的變數傳至另外建立的JNI,以達到相同效果 外觀與功能架構 避免使用者輸入非電話號碼的字元 撥號前利用自訂的函數(isPhoneNumberValid) 檢查並以Toast訊息來提示使用者 建立Pattern物件,將expression1.2的電話格式 傳入,再透過Matcher.match()檢查是否符合規格。 最後回傳一個訊號給主程式(boolean) 外觀與功能架構 安裝至Android實際操作 JNI是“Java Native Interface”的縮寫,是Java平台的一部分,它允許Java和其他語言的code可以進行溝通。而 JNI 提供的通道是雙向的,即Java可以使用C/C++ code中的功能,而C/C++ code也可以使用到 VM 上的Java AP的功能。 JNI介紹 C in Linux C in Android 在執行Java類別的過程中,如果Java類別需要與C組件溝通時,VM (Virtual Machine)就會去載入C組件,然後讓Java的函數順利地呼叫到C組件的函數。 此時,VM 扮演著橋樑的角色,讓Java與C組件能透過標準的JNI 介面而相互溝通。 那麼Java程式又如何要求VM去載入所指定的C組件呢 ? 可使用下述指令: System.loadLibrary(*.so的檔名); Eg. Android 所提供的 MediaPlayer.java 類別: public class MediaPlayer{ static { System.loadLibrary(media_jni); } …… } 這要求VM去載入 Android的/system/lib/libmedia_jni.so。 載入 *.so 檔之後,Java類別 與 *.so檔 就匯合起來,一起執行了。 依照下面的步驟可以實現一個非常簡單的JNI: (1)在/development目錄下新增 hellolib.c 和 Android.mk。 hellolib.c 的內容如下: #include jni.h #define LOG_TAG TestLib #undef LOG ? #includ
您可能关注的文档
最近下载
- 人教版初中生物会考试卷及答案.pdf VIP
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 2023年四川省广元市中考地理试题卷(含答案详解).docx
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 广西师范大学2020-2021学年《认知心理学》期末考试试卷(B卷)含参考答案.docx
- 羊常见疾病防治.ppt VIP
- 国开期末考试3987《Web开发基础》机考试题及答案(李老师第5套).pdf VIP
- 2024年怀化市靖州苗族侗族自治县六年级下学期小升初真题精选语文试卷含答案.doc VIP
- 2023年海南师范大学软件工程专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2025年社区工作者招聘考试题库及答案解析.docx VIP
文档评论(0)