废话先不说,直接上干货:
只要把两个地方的数据完整的复制到新手机对应位置就可以了,但过程相当坎坷:
/data/data/com.tencent.mobileqq
/sdcard/Tencent/MobileQQ
下面开始废话:
最近打算换个新手机,这面临着数据转移的工作。短信、联系人、通话记录这三样数据转移起来非常容易,第三方工具太多了。但是转移手机QQ的数据(聊天记录、QQ空间动态等)时却犯难了。
其本身并没有提供导入导出数据的功能。也没有找到第三方工具。没办法,只能自己找方法了。
手机获得Root权限后确实比较方便,先用RootExplorer搜Tencent字样的文件和文件夹,确定所有腾讯软件的数据都会在这个字样的目录后,又把范围缩小到了带MobileQQ字样的文件和文件夹。最后确定了含有重要数据的两个位置:
/data/data/com.tencent.mobileqq
/sdcard/Tencent/MobileQQ
因为对Linux不太了解,所以顺便搜了一下安卓的目录的介绍(http://blog.csdn.net/xxg3053/article/details/6981949)。
为了确定聊天记录什么的都在上面提到的两个地方,先用安卓内置的SQLite查看器看了一下/data/data/com.tencent.mobileqq中的很多db文件。在 databases 目录下以QQ号命名的db文件中确实能看到聊天记录,只是可能经过UTF编码了,所以看到的是乱码。
而 /sdcard/Tencent/MobileQQ 中的文件大概看了一下,是一些头像缓存之类的东西,重要性较前一个目录低了一点。
因为新手机还没到手,所以自己用Eclipse+AndroidSDK新建的虚拟机测试了转移过程。不知道是什么原因,2.3.3的虚拟机打不开旧手机中的db文件,但是4.3却能打开。
因为目前还没用到实机中。所以详细操作步骤暂时不说了。只说一下几个重要的点:
1、 手机必须有Root权限,这样才能拿到核心数据或把数据放回去。
2、 AVD(Android Virtual Device,安卓虚拟设备)中的软件获取Root比较麻烦。具体的可以搜索网上的文章。
3、 可以直接用adb的push把文件夹复制到/data/data/中。
4、 新手机中的文件夹的权限不是旧手机中的标准样子了,貌似要改成QQ对应的用户。因为看网上说,/data/data 转移到sd卡时因为权限的改变会导致莫名其妙的问题。所以这里的权限如果不处理好,我感觉以后也可能会出问题。