一直以来,我总是以“够用就好”为理由,很少再维护过自己的一键打包的项目。最近接触了棱镜的sdk,感觉将apk包上传到棱镜服务器,后台来进行分包这种简单的方式很招人待见。
原理似乎不难,apk即zip压缩文件,解压后需要处理的主要是classes.dex,二进制的AndroidManifest.xml和resources.arsc文件。转载的那篇文章详细的介绍了使用android原生指令编译出apk的过程,从中也可以了解到这些文件的生成方法。
nosdk现在已经实现了中间层的代码,不过预先编译各平台的classes.dex和AndroidManifest.xml等文件,解压缩apk,替换各种文件,这几步依旧是不小的工程。
关于那篇文章的有效性我目前还未实验,因此未来的计划分为以下三步:
- 使用原生android指令打一次包,熟悉apk中各文件的作用及生成方式;
- 使用nosdk中的一个平台,手动替换其中的文件为另一个平台的文件,看看能否实现平台切换的效果(其实主要看看能不能运行);
- 将2中的手工劳动改为代码自动实现。
当然,实现这些东西,乐观估计的话,也得三年多。
关于nosdk以后的设计,我觉得它需要遵循以下几点:
- 安全,因此我不打算使用中间的服务器层,虽然最后为了同步不同平台的服务器消息肯定会用到,但我希望它至少只能是示例;
- 开放,它肯定是开放源代码的,很多的平台,肯定是需要很多人来接入甚至来维护的,若是能够因此组成一个社区,若是大家能齐心协力做好一件事情,那自然是再好不过了;
- 简易,当然若是想让它受欢迎,首先得保证它的傻瓜式的操作;
- 稳定,主要是代码的可维护性,可扩展性。
先想那么多吧。