1. 程式人生 > >Android android studio 專案放在原始碼中編譯

Android android studio 專案放在原始碼中編譯

app中有些許可權在Android studio下無法實現,如關機等,雖然配置了許可權,但是還是需要app簽名,因此將app直接放在 原始碼中進行編譯

一、首先將app程式碼放在原始碼中
1.可以放在vendor 目錄下自己專案的package/app/下面
2.可以放在vendor/google/partner_gms/apps 或者 vendor/mtk/qcom 等
3.也可以直接放在 packages/apps/ 下面

如下圖所示:

這裡寫圖片描述

在檔案中新增 mk 檔案

二、mk 檔案內容如下:

LOCAL_PATH := $(call my-dir)
include $(
CLEAR_VARS) #這個主要用於是 eng、user還是 userdebug 版本參與編譯; optional值所有版本都參與編譯 LOCAL_MODULE_TAGS := optional #編譯的java檔案檔案路徑 LOCAL_SRC_FILES := $(call all-java-files-under, app/src/main/java) #需要編譯的 AndroidManifest.xml 檔案 LOCAL_MANIFEST_FILE := app/src/main/AndroidManifest.xml #編譯的資原始檔檔案路徑 LOCAL_RESOURCE_DIR :
= $(LOCAL_PATH)/app/src/main/res #編譯出的apk的名稱 LOCAL_PACKAGE_NAME := MyReboot #apk 簽名 LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) include $(CLEAR_VERS) include $(call all-makefiles-under,$(LOCAL_PATH))

三、問題解決:
上述過程匯入後,對於 android-support-v7-appcompat 等檔案沒有將會報錯,解決方法如下:

替換掉原來的style.xml檔案,或者更改檔案中的內容如下

<resources>

    <!-- Base application theme. -->
    <!-- 註釋掉
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">         
    -->
        <!-- Customize your theme here. -->

        <!-- 註釋掉

        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    -->
     <!--新增原來Activity對應的主題-->
     <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>
     <style name="AppTheme" parent="AppBaseTheme">
     </style>
     <!--新增原來的主題-->

</resources> 

同時修改

//註釋掉 v7的並新增 下面的import項
 #import android.support.v7.app.AppCompatActivity;
import android.app.Activity;

//註釋掉 AppCompatActivity 的並新增 Activity 
//public class MainActivity extends AppCompatActivity implements SensorEventListener {
public class MainActivity extends Activity implements SensorEventListener {

}

然後mm編譯 apk即可

三、參考地址
https://blog.csdn.net/w469622007/article/details/77988457