Android android studio 專案放在原始碼中編譯
阿新 • • 發佈:2019-01-12
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