Genymotion Virtual Device文件下载大法

大名鼎鼎的Genymotion很多人都说好,一直没自己用过,直到今天因为某些原因需要在电脑给客户演示app,终于想到要使用一下。不过Virtual Device的下载过程很蛋疼,科学上网工具稍有不稳定就会timeout,或文件损坏。

原本计划跟一下network记录寻找ova真实路径,Stackoverflow了一下发现暴多老外也在讨论这问题的,纳闷,一直以为只有在天朝才会困惑。

言归正传,Genymotion依靠VirtualBox来跑虚机,所以可以利用log来查看虚机ova文件的绝对下载路径,使用靠谱的工具下载,再拷贝到它本该在的本地目录。

Genymotion安装后在本地的数据文件夹在用户目录下,例如我的:

genymotion.log文件中有这样的记录:

那个.ova就是你的目标,然后就简单了,比如迅雷😄?然后拷贝到:

问题是,在我的电脑上拷贝完并重启Genymotion后,并不能直接找到虚机。无奈之下用VirtualBox打开ova文件并导入虚机后重启Genymotion,它却在那里了。

android查看sqlite数据

由于没有root的真机环境,无法直接利用adb操作device中的db,因此很多调试工作不得不在模拟器环境下做,这样可以随时拷贝文件到电脑上查看表结构和数据情况。

一般情况下device的目录:data/data/<package-name>/databases/<db-name>.db。至于看数据的工具,强烈推荐Navicat。

当然,模拟器环境下ls等常用linux命令都是照常使用。

顺便,litepal的version value升级数据表的方式的确很方便,但是如果在代码里修改了某个字段名,那么同步数据库的时候若不做特殊处理,原有字段的数据将丢失。想也是,相当于删除原来的字段,又新建了一个字段。所以修改字段名这件事情,能不做还是不要轻易做,即便要做得搞定升级数据库时的版本问题。

如何给nexus 5/6 刷上Android M preview 2

官方时间表

尽管不久的七月底应该就出第三个preview了,还是忍不住当了回小白,把nexus6刷成android M了,没有尝试nexus5,但就网上资料看,情况大致一样。首先看下google官方的timeline吧,传说中的M第三季度即将正式到来。

enter image description here

下载image文件

目前为止preview2的下载位置是这里。选择合适的版本,比如nexus6是shamu。

enter image description here

解压下载包后,里边的东西是这样的:

enter image description here

bootloader和radio的文件名跟设备和版本有关。image-shamu-**.zip压缩包里是这些东西:

enter image description here

刷入步骤

android developer网站上有详尽的指南,原本按照这些步骤,应该就衣食无忧了。但实际上fastboot工具没法直接找到image-shamu-MPZ79M下的几个img文件,很明显flash-all脚本写的不够人性化。网上有修改该脚本的讨论,没有仔细去研究,因为手动操作几下总体上比较省时间。参考网上的这篇文章后,大致的操作步骤变更为如下:

  1. 将android-sdk下的platform-tools文件夹添加到操作系统的PATH变量里(例如osx下可写入~/.bash_profile文件),主要是要让flash-all脚本能用到。
  2. 进入开发者模式,确保usb调试状态打开;确保OEM可解锁。
  3. 进入fastboot模式,命令行:adb reboot bootloader。此时小机器人画面会出现。
  4. OEM解锁(以后可以在lock回去):fastboot oem unlock。此处手机上需要确认YES or NO,按提示操作。
  5. 命令行执行flash-all.sh(osx下./flash-all.sh),按照官方指南,此处应已万事大吉。可实际情况的确会出现一堆ok,直到出现某个image缺失,那就是没有找到image-shamu-MPZ79M中的内容了,于是逐个加载,注意是有顺序的。所有都执行完后,fastboot reboot一下。逐个加载过程如下:

其间,只有system.img的导入会稍微耗时一些:

ok,就是这样了。