當前位置:編程學習大全網 - 源碼下載 - 如何將程序編譯在高版本的android上

如何將程序編譯在高版本的android上

把常用的應用程序編譯到img文件中,就成了系統的壹部分,用戶不必自己安裝,當然也卸載不了;

同時也可以刪減系統自帶的應用程序,精簡系統;

1.\build\target\product 目錄下generic.mk文件:

Java代碼 收藏代碼

PRODUCT_PACKAGES := \

AccountAndSyncSettings \

DeskClock \

AlarmProvider \

Bluetooth \

Calculator \

Calendar \

Camera \

testMid \

CertInstaller \

DrmProvider \

Email \

Gallery3D \

LatinIME \

Launcher2 \

Mms \

Music \

我們添加壹個testMid \ 應用名稱。

2.把testMid包放入

\packages\apps 目錄下,修改android.mk文件。

Java代碼 收藏代碼

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := testMid

LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

註:LOCAL_PACKAGE_NAME := testMid (包名必須和generic.mk中添加的相同)

編譯源碼,可以看到在

\out\target\product\smdkv210\system\app

目錄下生存了testMid.apk了。這時system.img也包含了此應用。

-------------------------------------------------------------------

特殊情況:有時,應用需要包含jar包,這時的app導入源碼時會出現問題:

MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop

由於 LOCAL_STATIC_JAVA_LIBRARIES := libarity 會引發錯誤信息。

目前解決方法是:

\build\core 目錄下修改base_rules.mk

註釋掉錯誤信息:

ifdef $(module_id)

#$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id)))

endif

$(module_id) := $(LOCAL_PATH)

--重新編譯,這時可以通過了。

(2)、刪除原廠(Telchips)帶源碼的應用程序,如DTV_DVBT

在/device/telechips/m801/device.mk

註釋掉相應語句:

# PRODUCT_PACKAGES += \

# SampleDVBTPlayer \

同時,在/out/target/product/m801/system/app 找到相應的.APK包,並刪除

  • 上一篇:對象存儲操作系統中的最大對象數量是
  • 下一篇:山西景區對江浙滬免費開放;山西免費景點完整列表
  • copyright 2024編程學習大全網