Android 将Activity殴打jar包 对于由第三方使用 解决XML 图片 文本资源并不难过进入jar包装问题!

做项目需要打包成jar文件供第三方使用项目要求(将图片 文字资源写到到jar包中,第三方调用时,仅须要在AndroidManifest.xml配置下对应的Activity通过StartActivity方式拉起Activity):在网上找了好久。并依靠查看Android源代码终于攻克了问题

一:须要明确知识:

1.APK中的Res文件夹无法通过EclipseExport方式导入到jar包中 Assert能够

2.Android程序在编译成APK时须要通过aaptRes文件夹下的资源生成相应的Id Assert文件夹下的资源不会在R文件里生成Id

XML资源学习:

1.AssetManager中提供XmlResourceParseropenXmlResourceParser(String fileName)这种方法 能够讲编译后XML文件生成一个资源遍历对象 通过该对象能够获取一个整个布局的View

2.通过 setContentView(view)能够设置在Oncrea方法中设置Activity的布局

对图片资源学习:

1.将非.9图片放入到Assert文件夹下 通过获取文件资源去生成Drawable对象 Button等其它空间的点击效果能够通过StateListDrawable来实现

2..9图片进行处理 让须要先编译 去除掉上下左右的黑色的拉伸区域 显示区域的标记 用法与非.9图一致

对字符学习

1将字符写在Java文件里 ,写到一个静态的Map,通过kay_value能够再全局都获取到

 

二:详细操作过程:

1.先使用普通的方式 XML文件里设置你的布局 并在执行Activity查看界面效果

2.删除你在XML文件里设置的图片,字体资源的属性。由于Res文件夹无法导入到Jar包中,无法在R文件里生成相应资源的Id,所以通过android:src="@drawable/uac_logo"此类方式设置的图片资源均不会被找到。在第三方获取编译后的XMLlayou文件时会抛出资源没有被照到的异常

2.取出bin文件夹下已经编译好的APK文件,解压缩 取出编译好的XML文件 图片资源 放入到Assert文件夹下

3.ActivityonCreat方法中使用XmlResourceParseropenXmlResourceParser(String fileName)方式获取Layout文件 通过setContentView(view)设置为整个Activity的布局  使用当中的控件(ButtonTextView) 仍能够通过R.id.XX的方式获取 此时通过解析XML文件,系统以及获取到你这个XMl中各个控件Id(此时的Id是否会与第三方资源Id冲突 这个问题我认为不会发生,毕竟findViewById()给出的定义是寻找该XML下的控件的Id 有哪位对这个毕竟清楚 请教下?)

4.获取到控件之后,能够通过setTextsetBackground setImageDrawable等方法设置 文字 背景 展望资源。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/lcchuguo/p/4650803.html