官术网_书友最值得收藏!

  • 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來實現上層界面。

主站蜘蛛池模板: 南陵县| 沾化县| 彰武县| 上高县| 山丹县| 巴楚县| 泰兴市| 南宁市| 新龙县| 聊城市| 江油市| 吉隆县| 启东市| 吉安市| 宜阳县| 华阴市| 新巴尔虎右旗| 东宁县| 手游| 麻栗坡县| 资阳市| 昭平县| 郎溪县| 通辽市| 香河县| 安宁市| 卫辉市| 绿春县| 旌德县| 岳西县| 井研县| 莎车县| 安庆市| 奉节县| 锡林郭勒盟| 武清区| 武清区| 和林格尔县| 扎囊县| 德州市| 志丹县|