- Android開發精要
- 范懷宇
- 763字
- 2018-12-31 16:21:48
1.1.1 應用層
對于普通的用戶而言,只能通過具體的應用來判斷移動平臺的優劣。即便一個移動平臺具有最華麗的技術,但是如果不能給用戶提供最得心應手的應用,頂多也只能贏得無冕之王的名頭,而無法抓住用戶的心,贏得市場的認可。
Android應用層由運行在Android設備上的所有應用共同構成,它不僅包括通話、短信、聯系人等系統應用(隨Android系統一起預裝在移動設備上),還包括其他后續安裝到設備中的第三方應用。
第三方應用都是基于Android提供的SDK(Software Development Kit)進行開發的,并受到SDK接口的約束。而預裝在設備中的系統應用,則可以調用整個框架層的接口和模塊,其中的很多接口在SDK中是隱藏的,因此,系統應用具有比第三方應用更多的權利。
Android的應用都是基于Java語言來開發的,但在很多應用(尤其是游戲)中,需要進行大規模的運算和圖形處理,以及使用開源C/C++類庫。通過Java來實現,可能會有執行效率過低和移植成本過高等問題。因此在Android開發中,開發者可以使用C/ C++來實現底層模塊,并添加JNI(Java Native Interface)接口與上層Java實現進行交互,然后利用Android提供的交叉編譯工具生成類庫并添加到應用中。
為了讓應用開發者能夠繞過框架層,直接使用Android系統的特定類庫,Android還提供了NDK(Native Development Kit),它由C/C++的一些接口構成,開發者可以通過它更高效地調用特定的系統功能。
但在Android上,開發者通常只能使用C/C++編寫功能類庫,而不是整個應用。這是因為,諸如界面繪制、進程調度等核心機制是部署在框架層并通過Java來實現的,應用只有按照它們規定的模式去編寫特定的Java模塊和配置信息,才能夠被識別、加載和執行。
小貼士
從Android 2.3(API 9)開始,新增了android.app.NativeActivity類,它是通過調用預定義的JNI接口來實現的。開發者可以基于NDK,通過C/C++語言來實現具體功能。這就意味著,開發者僅通過C/C++語言就能實現整個應用。這對于游戲開發者而言是一大喜訊,但由于控件在Android中并沒有Native的實現,普通的應用開發者通常還是需要通過Java來實現上層界面。
- ASP.NET Web API:Build RESTful web applications and services on the .NET framework
- Python 深度學習
- Vue.js 3.x從入門到精通(視頻教學版)
- Hadoop+Spark大數據分析實戰
- Python Network Programming Cookbook(Second Edition)
- Hands-On Full Stack Development with Go
- Visual FoxPro程序設計習題集及實驗指導(第四版)
- C語言從入門到精通
- 小型編譯器設計實踐
- R數據科學實戰:工具詳解與案例分析
- Learning Bootstrap 4(Second Edition)
- Qt 4開發實踐
- Python程序設計教程
- Mastering Embedded Linux Programming
- Java從入門到精通(視頻實戰版)