- 不试图改变项目本身的目录结构
- 通过添加额外的配置和依赖构建Gradle环境支持
- 会使用脚本移除一些AS不支持的属性和字段,然后利用git本地忽略
- 由于出现两张图片冲突,并且gradle暂不支持sourceSets.res移除操作,所以仍然使用脚本做忽略移除(ic_refocus_normal.png 和 ic_refocus_disabled.png)
- 因为使用push的方式进行安装和覆盖,libjni_tinyplanet和libjni_jpegutil两块暂不参与编译
PS:如果希望参与编译,可以引入对应的so文件,或者gradle配置ndkBuild的Android.mk路径,并确保安装了ninja
adb push Camera2.apk /system/priv-app/Camera2/
adb shell killall com.android.camera2
adb reboot
// AOSP/android-11/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-header.jar
compileOnly files('libs/framework.jar')
// AOSP/android-11/out/soong/.intermediates/external/guava/guava/android_common/turbine-combined/guava.jar
implementation files('libs/guava.jar')
// AOSP/android-11/out/soong/.intermediates/frameworks/ex/camera2/portability/android-ex-camera2-portability/android_common/javac/android-ex-camera2-portability.jar
implementation files('libs/android-ex-camera2-portability.jar')
// AOSP/android-11/out/soong/.intermediates/external/glide/glide/android_common/javac/glide.jar
implementation files('libs/glide.jar')
// AOSP/android-11/out/soong/.intermediates/external/xmp_toolkit/XMPCore/xmp_toolkit/android_common/javac/xmp_toolkit.jar
implementation files('libs/xmp_toolkit.jar')
// AOSP/android-11/prebuilts/sdk/current/androidx-legacy/m2repository/androidx/legacy/legacy-support-v13/1.1.0-alpha01/legacy-support-v13-1.1.0-alpha01.aar
implementation(name: 'legacy-support-v13-1.1.0-alpha01', ext: 'aar')
## implementation 'androidx.legacy:legacy-support-v13-1.1.0-alpha01'
在AOSP/android-11/build/target/product/security路径下找到签名证书,并使用 keytool-importkeypair 生成keystore, 执行如下命令:
./keytool-importkeypair -k platform.keystore -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias platform
并将以下代码添加到gradle配置中:
signingConfigs {
platform {
storeFile file("platform.keystore")
storePassword '123456'
keyAlias 'platform'
keyPassword '123456'
}
}
buildTypes {
release {
debuggable false
minifyEnabled false
signingConfig signingConfigs.platform
}
debug {
debuggable true
minifyEnabled false
signingConfig signingConfigs.platform
}
}
git ls-files -v | grep '^h\ '
git update-index --assume-unchanged $path
git update-index --no-assume-unchanged $path
git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged