Android源码开发中单个模块的编译自动化

12 篇文章 0 订阅
5 篇文章 0 订阅
#!/bin/sh
. build/envsetup.sh
lunch 1

case $1 in
        "pc")
        mmm packages/apps/Contacts/
        find out -name Contacts.apk |xargs -t -i adb push {} system/app/
         ;;
        "pp")
        mmm packages/providers/ContactsProvider
        find out -name ContactsProvider.apk |xargs -t -i adb push {} system/app/
        ;;
        "ph")
        mmm packages/apps/Phone/
        find out -name Phone.apk |xargs -t -i adb push {} system/app/
        ;;
        "pf")
        mmm frameworks/base
        find out -name framework.jar |xargs -t -i adb push {} system/framework/
        ;;
        "pm")
        mmm packages/apps/Mms/
        find out -name Mms.apk |xargs -t -i adb push {} system/app/
        ;;
        "pcrm")
        find out -name Contacts.apk |xargs -t -i rm {}
        mmm packages/apps/Contacts/
        find out -name Contacts.apk |xargs -t -i adb push {} system/app/
         ;;
        "pprm")
        find out -name ContactsProvider.apk |xargs -t -i rm {}
        mmm packages/providers/ContactsProvider
        find out -name ContactsProvider.apk |xargs -t -i adb push {} system/app/
        ;;
        "phrm")
        find out -name Phone.apk |xargs -t -i rm {}
        mmm packages/apps/Phone/
        find out -name Phone.apk |xargs -t -i adb push {} system/app/
        ;;
        "pfrm")
        find out -name framework.jar |xargs -t -i rm {}
        mmm frameworks/base
        find out -name framework.jar |xargs -t -i adb push {} system/framework/
        ;;
        "pmrm")
        find out -name Mms.apk |xargs -t -i rm {}
        mmm packages/apps/Mms/
        find out -name Mms.apk |xargs -t -i adb push {} system/app/
        ;;
        "push")
        adb push contacts2.db data/data/com.android.providers.contacts/databases/contacts2.db
        ;;
        "pull")
        adb pull data/data/com.android.providers.contacts/databases/contacts2.db contacts2.db
        ;;
esac

       以上脚本文件保存为:op,赋予执行权限,使用实例:"./op pc"或者“,/op pcrm"即可完成Contacts模块的编译以及push到设备中。
find out -name Contacts.apk |xargs -t -i rm {}
是为了防止之前使用多个lunch模式生成过多个Contacts.apk
xargs -t -i rm {}

-i 选项告诉 xargs 用每项的名称替换 {}。

-t 选项指示 xargs 先打印命令,然后再执行。

"./op push"和"./op pull"分别完成contacts2.db数据库的push和pull。

       ps:Firefox有一个SQLite Manager插件可以用来查看或者修改sqlite数据库很方便。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值