LOCAL_PACKAGE_NAME := Settings
前景:在android操作系统中,如果想给系统定制⾃⼰的应⽤程序,⼜不想给⽤户删除(像信息,电话这样的应⽤程序),你就需要它了。
1、开发环境
操作系统:Ubuntu xx
开发⼯具:Eclipse
源码: Android honeycomb3.1(3.0)
2、以Helloworld为例
(1)、建⽴⼀个App
在Eclipse-App开发环境中新建⼀个Android Project命名为Helloworld,然后在模拟器上调试运⾏。将会见到下看到Helloworld 程序运⾏,并在屏幕上显⽰Hello world ,Main!这⼀步我们不需要写任何的代码。
(2)、移植App到Android
在linux系统中进⼊Android的源码⽬录,来到./package/apps/Settings/ ⽬录,把这⾥的Android.mk复制到刚才那个HelloWorld App 的跟⽬录下,并修改Android.mk⽂件
android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := Settings(换成HelloWorld,也可以⾃⼰取名,主要与后⾯的generic_no_telephony.mk修改⼀致即可)
LOCAL_CERTIFICATE := platform
LOCAL_PROGUARD_FLAG_FILES := proguard.flags //去掉
include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
3、修改/bulid/target/product/generic_no_telephony.mk 把⼯程编译到系统中(android2.2修改
在/bulid/target/product/generic.mk)
generic_no_telephony.mk
PRODUCT_POLICY := android.policy_phone
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
AlarmProvider \
Bluetooth \
Calculator \
Calendar \
Camera \
CertInstaller \
DrmProvider \
Email \
Gallery3D \
LatinIME \
Launcher2 \
Music \
Provision \
Phone \
QuickSearchBox \
Settings \
Sync \
SystemUI \
Updater \
eclipse androidCalendarProvider \
SyncProvider \
CryptKeeper \
HelloWorld
PRODUCT_PACKAGES += \
icu.dat
PRODUCT_PACKAGES += \
librs_jni \
libvideoeditor_jni \
libvideoeditorplayer \
libvideoeditor_core
PRODUCT_COPY_FILES := \
system/bluetooth/f:system/etc/f \
system/bluetooth/data/f:system/etc/bluetooth/f \
system/bluetooth/f:system/etc/f \
system/bluetooth/f:system/etc/f \
system/bluetooth/f:system/etc/f \
system/bluetooth/f:system/etc/f
$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
$(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
# Overrides
PRODUCT_BRAND := generic
PRODUCT_DEVICE := generic
PRODUCT_NAME := generic_no_telephony
4、编译:
cd 源码⽬录
source build/envsetup.sh
choosecombo(选择默认直接回车)
make -j2
5.获得system.img
./emulator -avd abc(模拟器名称已经存在) -system out/target/product/generic/system.img 就可以从模拟器看到你的应⽤了,从setting也不可以删除了。
5(2)(两种⽅式都可以)
(5)、
cd 源码⽬录
编译Android SDK
在Android源码根⽬录下执⾏:#make sdk
等待......
编译完成后
来到/out/host/linux-x86/sdk/_linux-x86/tools/下,执⾏ :
./emulator -avd ANDROID2
启动模拟器,就会开到Helloworld会在Android系统中。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论