2016-07-25 78 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

相關問題