[置顶] Android项目组织和代码重用
在Android应用开发过程中,只要涉及两个或以上人的开发,就需要考虑分工和代码的组织和重用问题。
代码重用有三种方式:
1.APK;
2.JAR;通过Libs/ 和Build path集成,缺点是不能包含Android的资源;
3. Android Library Project;
三种方式的优劣分析,主要是JAR方式是以Binary方式重用的经典方式;
详见:http://www.slideshare.net/commonsguy/android-reuse-models
Android Library Project方式:
如果你有多个Android项目是共同的源代码和资源,你可以将它们添加到库项目,因此,它是跨应用程序和版本更容易维护。下面是一些常见的情况下,您可以使用库项目:
- 如果您正在开发多个相关的应用程序,使用一些相同的部件,您将冗余组件出各自的应用项目,并创建一个单一的,可重复使用相同的组件库中的项目组。
- 如果您要创建一个应用程序中存在的免费和付费两种版本。你移动到库项目中是常见的两个版本的应用程序的一部分。两个相关的项目,有着各自不同的包名,将引用库项目,只提供应用程序两个版本之间的差异。
I have the instructions in _The Busy Coder's Guide to Advanced Android
Development_ (http://commonsware.com/AdvAndroid), though the
instructions are new enough that none of my free versions have them.
Quoting some of the instructions from the current edition:
"You can create a binary-only library project via the following steps:
1. Create an Android library project, with your source code and such –
this is your master project, from which you will create a version of
the library project for distribution
2. Compile the Java source (e.g., ant compile) and turn it into a JAR file
3. Create a distribution Android library project, with the same
resources as the master library project, but no source code
4. Put the JAR file in the distribution Android library project's libs/
directory
The resulting distribution Android library project will have everything a
main project will need, just without the source code."
Android中库项目的使用方法图文介绍
http://www.jb51.net/article/32477.htm
Android library projects: Use common code in multiple apps
Android native libraries modularity / code reuse
The Busy Coder's Guide to Advanced Android Development
[置顶] Android项目组织和代码重用的更多相关文章
- [置顶] Android开发笔记(成长轨迹)
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...
- [置顶] Android Provision (Setup Wizard)
Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一 个冗余的实现.Android中的Provision其实 ...
- [置顶] Android布局管理器 - 详细解析布局实现
布局管理器都是以ViewGroup为基类派生出来的; 使用布局管理器可以适配不同手机屏幕的分辨率,尺寸大小; 布局管理器之间的继承关系 : 在上面的UML图中可以看出, 绝对布局 帧布局 网格布局 相 ...
- [置顶] Android AlarmManager实现不间断轮询服务
在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一 ...
- [置顶] [Android源码分析]inquiry result引起的上层变化分析
在上一篇文章中,我们详细分析了android是如何解析蓝牙反馈上来的搜索到的设备信息,本文将会继续分析这些信息到了上层之后是如何处理. 8.inquiry result引起的上层变化 我们知道inqu ...
- [置顶] Android四大组件之BroadcastReceiver
Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...
- [置顶] Android框架攻击之Fragment注入
为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示多个Activity,以达到充分利用屏幕的目的.关于Fragment的使用说明,可以阅读& ...
- [置顶] Android图片异步加载之Android-Universal-Image-Loader
将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就 ...
- [置顶]
Android 状态栏那些小坑?
背景:因为之前老板上次问我我们的app能不能自定义上面的状态栏我说可以啊!当时没管,今天试了下果然很多坑,之前github上也有很多大佬写了一个开源库有兴趣的可以点进去看下支持DrawLayout沉侵 ...
随机推荐
- 配置linux中文
1.~/.bash_profile文件添加一下内容并执行source ~/.bash_profile export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 2./etc ...
- oracle数据库常用查询一
oracle数据库常用查询一 sqlplus / as sysdba; 或sqlplus sys/密码 as sysdba;两者都是以sys登录.conn scott/tiger@orcl; conn ...
- python - 面向对象(一)
python是一门面向对象的编程语言,python中的一切均是对象. 有对象就提到类,对象和类就像是儿子和老子的关系,是不可分的一对. 什么是类 类就是具有一些共同特性的事物的统称.好比人类, ...
- 程序员的家!我终于拥有自己的blog了!!!
经过多次提交诚恳的家园申请,终于得到了审核通过!今天就开始了我的.net成长之路!!!
- 使用css3属性,大部分浏览器要识别前缀
例如以下代码的解析 -ms-transform:rotate(7deg); -moz-transform:rotate(7deg); -webkit-transform:rotate(7deg); - ...
- (转)IIS5.1的安装配置并发布ASP.NET网站
最近跟老师做一个桥梁养护系统的项目,要求用VS2008+Sql Server2000,服务器用IIS.由于之前做过的ASP.NET项目都是用的VS内置的服务器,并没有使用过IIS,第一次搭,花了几个小 ...
- log在线生成器 html中如何设置浏览器中标题前的logo
制作logo的地址:http://www.logomaker.com.cn/ 设置网站logo的方法 在<head></head>标签之间输入<link rel=&quo ...
- angularjs:[1] ui-router 权限控制
1:简单的登录检查 $stateProvider .state('index', { url: "/", templateUrl: 'views/forwards/intro.ht ...
- 04--帮助类ScreenAdapter编写
使用VS类向导添加ScreenAdapter,在Num2048项目上右键选择"添加"->"类",然后将生成的两个文件拖放到Classes文件夹中 ...
- smarty 常用参数
section的产生是为解决foreach的不足的,与foreach一样,它用于设计模板内的循环块,它较为复杂,可极大程序上满足程序需要,所以在程序中我习惯使用它而不使用foreach,基本原形为:{ ...