前沿:
在android开发过程中,往往会需要创建组件层面的第三方包,下面将对android对第三方包支持的方式种类,各试用范围,优缺点进行总结。最后分析当前开发过程中,一些大的平台的组件实现方式。
1. 导出jar文件方式,实现第三方组件
1.1. 实现过程:
选择项目--> 点击右键,菜单,选择Exportà选择java/JAR -->选择类和资源文件(推荐只选择类文件)-->选择导出文件路径,导出JAR文件。
?
1.2. 适用范围:
合适创建无资源的第三方组件。
?
补充说明:
包含资源的第三方组件也可以实现,但实现的方式比较繁琐,且不是标准做法,一般不建议这么做,如需实现,一般用以下两种方式
【1】 资源放到组件包JAR文件中,类中访问资源时,通过获取组件资源的方式
例:ImageIcon image = new ImageIcon(this.class.getResource("icons/logo.gif"));
java.net.URL imgURL = GUITest.class.getResource("/images/Snap1.jpg");
【2】 资源放到组件包JAR文件外,在组件中访问资源,通过获取运行环境中的R资源的名称方式获取(注意如果直接用组件项目中R类获取资源的方式时,会有问题,运行 环境会根据资源的int值,在运行的项目中找对应的资源)
?
?
1.3. 优缺点:
优点:实时过程简单,快捷,符合第三方组件的封装特点
缺点:不能很好的支持资源的封装
?
2. 项目library引用方式
2.1. 实现过程:
选择项目--》 点击右键,菜单,选择Properties--》选择Android --》右下方的Library--》选择Add,添加现有的项目。
?
2.2. 适用范围:
在大的项目实施过程中,共享工程中设置资源文件供项目调用
?
2.3. 优缺点:
优点:
支持资源共享
在Library方式下,组件中的资源会自动生成R文件,在应用项目中,可以直接通过R文件对资源进行引用
缺点:
需要项目之间应用,不适合项目封装
3. 当前第三方平台组件实现方式
3.1. CNZZ移动统计客户端组件实现方式:
通过jar文件方式生成组件,在组件中不包含资源文件
?
3.2. Admob广告客户端组件实现方式:
通过jar文件方式生成组件,对涉及到的窗体布局资源,通过代码强写完成。
?
3.3. 微云游戏平台组件实现的方式:
通过jar文件方式生成组件,资源通过外部导入引用项目中的方式实现。(过程用到了批处理,比较复杂)。
4. 当前我们平台的组件实现的方式
通过jar文件方式,资源也封装到组件中,通过包的方式去读取资源。