因工作需要,开发调试每次都要先编译so,再打包apk,然后再装机调试,很麻烦,就想有没有办法直接用新打包的so直接替换apk里的,这样省去了不少麻烦。终算是有两种办法。
第一种办法:
0.root手机:一般用各种手机助手都可以,一种不行可以换另一种,不同的手机可能需要不同的工具
1.终端连接上手机:
(1)adb shell
(2)su
2.修改相关文件夹和文件的权限:正常情况下很多文件都权限不够,为了方便修改的时候可以把涉及到的都修改为777(就是所有人都有读写执行的权限)
假如我想替换com.test这个程序里的so,那么:
(1)chmod 777 /data
(2)chmod 777 /data/data
(3)chmod 777 -R /data/data/com.test (加上-R是表示递归全修改为777,但是呢so全都在lib里,而这里lib是个软链,所以应该把lib对应的文件夹的权限修改)
(4)chmod 777 -R /data/app-lib/com.test-1 (这个后缀-1是系统加的,具体原因不知)
不同手机可能路径不一样,可以根据名称以及软链找到相应的。
3.push新版so:adb push *** /data/app-lib/com.test-1(把星号位置换成新so的路径)
第二种办法:
第二种办法前几步都和第一种一样,需要修改相应的权限,只是第三步借助一下eclipse,更界面化的操作。
(1)调出DDMS
(2)选中File Explorer选项(如果没有的话)点Window->Show View->File Explorer即可显示出来
(3)按需要的文件去push或者pull就可以了。
注意:在使用eclipse的时候,如果手机和电脑断开一下,再连接上,会刷出来文件系统目录,但是这个时候去操作push或者pull都会失败,这个时候需要选中一下左边Devices下面的手机一下,选中后会自动刷一下文件目录。如下图。