最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android內(nèi)核開發(fā):在源碼樹中添加新的app應(yīng)用

本文是《Android內(nèi)核開發(fā)》系列的第十二篇文章,上一篇文章介紹了如何從源碼中刪除出廠的app應(yīng)用,本文則在此基礎(chǔ)上,詳細介紹一下如何在Android內(nèi)核源碼樹中添加一個新的app應(yīng)用。

超過十余年行業(yè)經(jīng)驗,技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:網(wǎng)站制作、成都網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,小程序設(shè)計,微信開發(fā),重慶App定制開發(fā),同時也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!

網(wǎng)上也有介紹怎么在源碼中添加新的app應(yīng)用的博文,但大都數(shù)只介紹了不含有jni本地代碼的app的添加方法,本文會更加全面地介紹三種不同類型的app應(yīng)用如何添加到Android內(nèi)核源碼樹中編譯。

假設(shè)新的應(yīng)用名字叫:HelloWorld,并且已經(jīng)在Eclipse或者Android Studio中編譯和調(diào)試通過了,我們下面分三種情況來討論如何將它添加到Android內(nèi)核源碼樹中。

1.  不帶jni本地代碼

首先,在Android內(nèi)核源碼中選擇一個目錄來存放HelloWorld應(yīng)用的源碼,比如放到/packages/apps目錄下。

(1) 在HelloWorld目錄下新建Android.mk文件,示例如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := HelloWorld
include $(BUILD_PACKAGE)

注:LOCAL_MODULE_TAGS的備選值有user,eng,tests,optional,本示例中使用的TAGS值為eng,因此,僅當用戶指定的編譯選項為eng時才會編譯該工程。

(2) 配置makefile,添加新的項目

這一步與《Android內(nèi)核開發(fā):從源碼樹中刪除出廠的app應(yīng)用》正好相反,選擇 /device// /xxxx.mk,或者從 build/target/product/ 目錄下選擇一個被“引用”的.mk,在其中的PRODUCT_PACKAGES參數(shù)列表中添加本工程:

PRODUCT_PACKAGES := \
    DeskClock \
    Calculator \
    Calendar \
    Camera2 \
    Email \
    HelloWorld

(3) 編譯模塊

在HelloWorld目錄下輸入mm命令,或者切換到Android源碼根目錄下執(zhí)行下面任意一條命令即可:

$ make HelloWorld 
$ mmm package/apps/HelloWorld

編譯生成的apk會放到在out/target/product//system/app/目錄下。

2.  含有jni本地代碼

對于含有jni的項目,則需要修改上述新建的Android.mk,如下:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := HelloWorld
LOCAL_JNI_SHARED_LIBRARIES := libmynative
include $(BUILD_PACKAGE)

include $(call all-makefiles-under,$(LOCAL_PATH))

jni目錄下的Android.mk如下(假設(shè)jni目錄下有inc和src目錄):

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libmynative
LOCAL_SRC_FILES := src/mynative.c
LOCAL_C_INCLUDES += $(JNI_H_INCLUDE)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/inc

include $(BUILD_SHARED_LIBRARY)

3.  含有jni本地代碼,并且本地代碼依賴第三方庫(.a或者so)

假設(shè)本地代碼依賴的第三方庫為:encoder.a 和 decoder.so

(1) 修改上述jni目錄下的Android,mk,添加如下兩項:

LOCAL_STATIC_LIBRARIES := libencoder
LOCAL_SHARED_LIBRARIES := libdecoder

(2) 修改HelloWorld目錄下的Android.mk文件

首先把 encoder.a 和 decoder.so 都拷貝到工程根目錄下,然后修改Android.mk文件,添加如下兩項即可:

include $(CLEAR_VARS)
LOCAL_MODULE := libencoder
LOCAL_SRC_FILES := encoder.a
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := libdecoder
LOCAL_SRC_FILES := decoder.so
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)

關(guān)于如何在源碼樹中添加新的app應(yīng)用就介紹到這里了,有任何疑問或者建議歡迎留言或者來信[email protected]交流,或者關(guān)注我的新浪微博 @盧_俊 獲取最新的文章和資訊。


網(wǎng)站標題:Android內(nèi)核開發(fā):在源碼樹中添加新的app應(yīng)用
本文鏈接:http://fisionsoft.com.cn/article/gigddd.html