2016-07-25 79 views
3

我在Android Studio中创建了一个应用程序。现在我想在android_source_code/packages/apps /文件夹中添加该项目,并构建完整的AOSP图像,以便我的应用程序成为系统应用程序。如何在Android源代码中添加Android Studio创建的应用程序?

现在的问题是应用程序有一个Android Studio的文件夹结构,它完全不同于Eclipse和android_source_code期望它是在Eclipse文件夹结构格式。那么我怎么能做到这一点?

将android_source_code接受Studio文件夹结构还是需要编写脚本以将Studio文件夹结构转换为Eclipse格式,同时复制到android_source_code?

任何帮助将不胜感激。

谢谢

回答

4

将Android Studio项目集成到AOSP版本中并不是一项简单的任务。据我所知,没有任何专用工具将Android Studio项目(即使用Gradle构建系统)转换为AOSP项目(即使用make build系统)。

您可能想要研究的方法之一是创建您自己的Gradle任务,该任务将根据您的Android Studio项目的源结构构建Android.mk文件(即查找您的JAVA文件的所有相关源集,资源,清单,AIDL等......并创建一个Android.mk文件,告诉AOSP构建系统准确地查找每个文件)。 这种方法可能适用于相对简单的项目,但只要开始使用更复杂的功能(即模块,清单/资源合并等),您将发现在没有帮助的情况下生成Android.mk非常困难Gradle构建系统。

我会考虑不同的方法:

其预装的特权应用程序,你可以得到相同的权限作为系统应用和执行任何任务,你可能会想,没有任何限制来执行。

为此,您可以使用Android Studio构建应用程序,并将已构建的APK定义为BUILD_PREBUILT组件,该组件将放置在设备的priv-app文件夹中。

这里,将您预先内置的APK,并在设备上安装它作为预安装应用程序的Android.mk文件的exsample:

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 
LOCAL_MODULE := your_app_name 
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk 
LOCAL_MODULE_CLASS := APPS 
LOCAL_MODULE_SUFFIX := .apk 
LOCAL_PRIVILEGED_MODULE := true 
LOCAL_CERTIFICATE := platform 
include $(BUILD_PREBUILT) 

此外,根据您的应用需要什么做,你可能想在你的清单中声明你的应用程序是一个系统应用程序:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
... 
... 
android:sharedUserId="android.uid.system"> 
+0

伟大!!为我工作 –

+0

感谢您的建议。我也在想同样的事情。 – abhi

相关问题