Build Android BrowserPlugin

关于 Android浏览器插件 开发的文章网上已经很多了,我做为从来没接触过的新手从下载源码到编译出一个能用的Sample犯了很多令人郁闷的低级错误,写下来,希望别人能少走弯路

网上很多文章都说:下载源码,执行make SampleBrowserPlugin,就能看到out/target/product/generic/data/app目录下有apk生成出来了; 我在源码根目录执行了make之后却看到一个apk一个odex文件,而且apk里没有classes.dex文件!

接下来我竟然在out/target/product/generic/obj/APPS目录下找到了含classes.dex的apk,不过很遗憾,想尽办法把这个apk安装到虚拟机上后没有任何效果出来

经过相当久的努力未果后我意识到,我肯定犯了一个极其愚蠢的低级错误,编译一个源码的Sample不可能这么复杂,况且大家都说很简单了。于是我终于想起来看看我下载的源码版本,不出所料,果然是最新版本:Android4.0,即AOSP版本,api level是15,而我的虚拟机是2.3.3,api level是10。下载了2.3.3版本的源码后直接make然后安装,果然就像网上说的那样,一个跳动的小球出现了,很简单。

最终结论:在2.3版本的Android源码里,SampleBrowserPlugin的Readme文件没有问题,照着做就能弄出来可用的apk; 但是在4.0版本的源码里,默认make出来apk和odex是分离的,使用out/target/product/generic/obj/APPS/package.apk.unaligned安装到最新版的Android4.0虚拟机上也能看到一个黑框,但不是小球,插件是执行起来了的。
这边最重要的是 源码/虚拟机 版本必须一致,习惯了跨平台的开发者不要想当然。