AndroidStudio 不依赖源码编译开发系统App

610 阅读1分钟

Android studio 内新建或导入Project。

  1. build.gradle文件中添加依赖 framework.jar
dependences{
    compileOnly files('libs/framework.jar')
}
  1. AndroidMainfest.xml文件添加系统app权限
android:sharedUserId="android.uid.systemui"

完成上述配置,即可按照正常的项目开发即可,执行下面脚本选项,即可进行编译和安装等行为。

  1. 以systemui开发脚本为例,内容如下:
#!/bin/sh

# 打Debug包
build() {
	./gradlew clean
	./gradlew :app:assembleDebug
}

# 打Release包
buildRelease() {
	./gradlew clean
	./gradlew :app:assembleRelease
}

# 将打包的Apk推送到系统指定目录
install() {
	adb root
	adb remount
	adb push app/build/outputs/apk/app-debug.apk /system/priv-app/fileName/app-debug.apk
	adb kill systemui
}

# 重启系统应用
adb_kill() {
	echo "kill $1"
	# 通过进程名查看需要kill的进程ID
	adb shell ps | grep $1
	# 通过进程ID kill该进程
	adb shell ps | grep $1 | awk '{print $2}' | xargs adb shell kill -9
}

# Build systemui app
if [ "build" = "$1" ]; then
	build
fi

# Install systemui app
if [ "install" = "$1" ]; then
	install
fi

# Kill app process by process name
if [ "kill" = "$1" ]; then
	name="$2"
	echo "1 kill $name"
	if [ ! $name ]; then
		name="systemui"
	fi
	echo "2 kill $name"
	adb_kill $name
fi

# 完整的操作,build & install & restart systemui 
if [ ! $1 ]; then
	echo "build & install & restart systemui"
	build
	install
	adb_kill
fi