在cmd中进入tools这个文件夹后,输入
adb shell
cat /data/data/com.android.launcher/databases/launcher.db > /sdcard/launcher.db上面两行命令的作用是把launcher.db这个文件从手机中的/data/data/com.android.launcher/databases目录下拷贝到sdcard中!
请问高人,这两句命令如何在Eclipse下新建一个应用程序以代码的形式实现?
adb shell
cat /data/data/com.android.launcher/databases/launcher.db > /sdcard/launcher.db上面两行命令的作用是把launcher.db这个文件从手机中的/data/data/com.android.launcher/databases目录下拷贝到sdcard中!
请问高人,这两句命令如何在Eclipse下新建一个应用程序以代码的形式实现?
//令)
Process p=Runtime.getRuntime().exec("cmd /c "+strcmd); BufferedReader br=new BufferedReader(new InputStreamReader
(p.getInputStream ()));
while((Result=br.readLine())!=null)
{
//可以打出命令执行的结果
}
可能我描述的有问题吧,adb(android debug bridge)是android SDK里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备,它的主要功能有:
运行设备的shell(命令行)
管理模拟器或设备的端口映射
计算机和设备之间上传/下载文件
将本地apk软件安装至模拟器或android设备
现在在命令行环境下,使用adb shell相关命令后,可以把/data/data目录下的相关文件拷贝到sdcard中,我现在想知道的是,这个功能能不能不用命令行的方式实现,而是在project中用代码实现。
实际上问题就是在没有root权限下一个应用程序怎样去获取另一个应用程序中的文件(包含数据库文件和其他文件);注:所需要获取的数据库文件并没有做成ContentProvider供其他应用程序访问(或者有做成ContentProvider,但是给隐藏了)
不过还是非常感激楼上这位仁兄...
例子可参考
http://blog.csdn.net/sodino/archive/2010/10/14/5941308.aspx
实际上在命令行下输入adb shell 和 cat 相关指令来从/data/data目录下拷贝系统自带应用程序下的文件到/sdcard中是需要root权限的(没有root权限的话,会抛出permission denied),但是存在/data/app/下的apk文件,不需要root权限就能拷贝到/sdcard目录下吗?? 求真相,我顺便去试下..
不过其实想想也是,放在/data/app/下的第三方app没有理由需要root权限才能获得它的安装文件..launcher.db这个数据库文件下favorites这个表中存放的是手机主界面上app的快捷方式信息,官方文档并没有给出获取这个表的ContentProvider URI,看了package com.android.launcher
这个包的源码也没有找到,只发现final Uri uri = Uri.parse("content://" + Settings.AUTHORITY + "/old_favorites?notify=true");这个URI貌似和favorites有着很大关系,但是我在app中query过这个uri,返回NULL,也没有打印出任何该表属性值信息,不知道是不是我用的API版本问题,求高人赐教(给点思路就行)...