我正在为多媒体机顶盒制作 android 图像。既然是Froyo,就得使用android支持库来获取fragment。现在,与其在每个应用程序中都包含该库,不如将其集成到 android 框架中会更加简洁。我也会节省一些空间。
我正在考虑诸如对库进行索引并将其复制到特定位置(如果可能的话)。
你能给我一些提示如何实现这一目标吗?由于 make 系统没有很好的文档记录,makefile 会更好。
编辑:我正在遵循 pskinks 方法将支持库添加为框架库。我有一个 make 文件,它将 dexed 支持库复制到/system/framework/android.support.v4
.
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
# Copy the support library
# This will install the file as /system/framework/android.support.v4
LOCAL_MODULE:= android.support.v4
LOCAL_SRC_FILES := android-support-v4.dex.jar
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
我还将 lib 添加到 platform.xml 文件中:
<library name="android.support.v4"
file="/system/framework/android.support.v4"/>
但是,当构建过程到达链接到库的应用程序时,它们会失败,因为支持库的类不可用。
这是其中一个应用程序的生成文件:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := AppManager
LOCAL_JAVA_LIBRARIES := android.support.v4
LOCAL_CERTIFICATE := shared
include $(BUILD_PACKAGE)
我还添加了库来清单:
<uses-library android:name="android.support.v4" android:required="true" />
我还需要做什么,构建过程才知道这个库?