app开发常常计划没有变化快,折腾是常有的事。譬如,有时候业务需要将两个独立发展的工程整合成一个。android开发发展了这么多年,早年主要靠android标准库,现在慢慢发展到各种各样第三方库极大丰富。早年app工程比较简单,java代码、jni代码、res、manifest这四部分也就差不多了;现在各种库被引进到app工程中,有jar、有aar、有so、有源代码工程;再加上android studio取代了eclipse之后,功能更强大的同时使用的复杂度也有增加。所以,集成代码的时候,当两个工程都很大,可能工作量和难度要比想象中更大。这就是工程,目标和流程在想象和规划的时候都很顺畅,但实施起来却常常遇到各种坑。这里聊聊我觉得比较好的整合方式,以及中间可能遇到的一些坑。(假设将project A整合到project B中。)
先说一下,eclipse/android studio/android编译环境都支持将一个工程编译成jar;android studio更提供了aar,可以将res也打包进去,一定程度上解决以jar包集成无法带res的问题(但aar只是简单地将res打包进入到aar,如果资源id冲突,还是会以定位到主工程的资源,如果想资源上有所拆分隔离,就要考虑插件化编程了)。本文并非针对这种方式,而是代码级的整