怎么样将自己开发的应用程序编译到Android系统呢?
本文不详细介绍编译环境的配置,想知道编译环境配置的请看
下面咱们探讨在已经正确配置的环境下进行讲解如何将自己的应用程序添加到系统进行编译
首先将你的应用程序拷贝到packages/apps,然后到apps目录下的一个应用程序拷贝一个Android.mk
到你开发的应用程序根目录,下面打开Android.mk分析一下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := GalleryTest #这个是应用程序名字
LOCAL_PROGUARD_ENABLED := full
include $(BUILD_PACKAGE)
上面的是我刚开始使用的配置信息,搞了好久它就是没有编译到系统里面去。原因是
LOCAL_MODULE_TAGS := optional这个选项有问题,因为我编译的是eng版本,虽说optional表示在所有版本都可以编译,但是LOCAL_MODULE_TAGS 变量跟TARGET_BUILD_VARIANT 变量息息相关。后来将其改为eng则可以编译成功,当然如果你的是其它的则应该选用其它。下面顺便给出它的选项简介。
LOCAL_MODULE_TAGS :=user eng tests optional
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在所有版本下都编译
除了上面的配置之外还需要在build/target/product/generic.mk添加你的应用程序名字,如下:
PRODUCT_PACKAGES := \ AccountAndSyncSettings \ CarHome \ DeskClock \ AlarmProvider \ Bluetooth \ Calculator \ Calendar \ Camera \ CertInstaller \ DrmProvider \ Email \ Gallery3D \ LatinIME \ Launcher2 \ Mms \ Music \ Provision \ Protips \ QuickSearchBox \ Settings \ Sync \ Updater \ CalendarProvider \ SyncProvider\
GalleryTest
这样就完成了配置,然后可以编译了。