1.预安装软件:
a. 预置含源码的应用
将eclipse下的工程文件夹FactoryTest复制到
android\platform\packages\apps\
在FactoryTest目录下创建一个名为 Android.mk的文件,内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
#LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_PACKAGE_NAME := FactoryTestinclude $(BUILD_PACKAGE)
添加
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
让app可以被卸载
b. 预置只有apk的应用
打开文件
android\platform\device\mediatek\mt8658sdk\device.mk
将 FactoryTest 添加到 PRODUCT_PACKAGES 里面
重新 build 整个工程
目录下,然后编译android源码再烧录就可以完成
当然,在该下删除apk也可以实现去掉预装软件,这应该就是很多精简rom包实现的原理
c. 删除预置应用
手机root后,直接删除/system/app/目录下的apk,就可以直接卸载预置不可卸载的应用了
也可以通过删除/data/app/目录下的apk,删除可卸载的应用
2.编译android源码
进入android源码根目录下
rm $OUT/system $OUT/data $OUT/obj/APPS -rf
source build/envsetup.sh
make
ps:make otapackage 是生成update.zip升级包
3.烧录
将编译得到的out/mt8658sdk/bin/mt****_bl_linux.bin拷贝至U盘根目录下的 UPG文件夹下
连接串口,重启机器,进入命令行
输入upg开始烧录
烧录完成后手动重启,或者输入reset重启
4.模拟器访问本地服务器
模拟器访问本地服务器时,不是127.0.0.1也不是localhost
网上很多文章说10.0.2.2 是模拟器设置的特定ip,类似于本地的127.0.0.1
我试过在模拟器播放我本地apache服务器,本地访问127.0.0.1完全没问题,但是在模拟器上不能访问127.0.0.1和10.0.2.2,然后网上有篇文章说是机器的ip,我按照方法没有获取到ip,但是我尝试用本地主机的局域网ip试试,结果就可以了
5.adb命令
这才发现adb命令的强大,这里只是记录一下这几天用到的几个
adb devices 查看当前已连接的android设备
adb connect 10.19.255.102:5555 连接android设备,ip是设备的ip,端口号为默认的5555
adb disconnect 10.19.255.102:5555
adb shell 进入adb命令行
am start -n com.android.settings/.Settings 进入android系统设置
am start -a android.intent.action.VIEW -d http://www.baidu.com/ 用浏览器打开制定网页
adb install -r D:\\FactoryTest.apk 强制安装apk
adb uninstall com.example.test //卸载已知包名的应用
adb shell rm /data/app/<*.apk> 卸载apk
adb shell rm /system/app/<*.apk> 卸载apk
adb push 电脑文件路径 手机中的路径 拷贝文件到android设备中
adb push D:\test.apk /system/app/
adb pull 手机中文件名 电脑路径 拷贝文件到电脑中
adb pull /system/build.prop D:\
am start -a android.intent.action.CALL -d tel:10086 拨打电话am start -a android.intent.action.VIEW geo:0,0?q=beijing 启动google map直接定位到北京
本文出自 “年少的风” 博客,请务必保留此出处http://huamm.blog.51cto.com/5646020/1546508