Android 将Activity殴打jar包 对于由第三方使用 解决XML 图片 文本资源并不难过进入jar包装问题!
做项目需要打包成jar文件供第三方使用项目要求(将图片
文字资源写到到jar包中,第三方调用时,仅须要在AndroidManifest.xml配置下对应的Activity通过StartActivity方式拉起Activity):在网上找了好久。并依靠查看Android源代码终于攻克了问题
一:须要明确知识:
1.APK中的Res文件夹无法通过Eclipse的Export方式导入到jar包中
而Assert能够
2.Android程序在编译成APK时须要通过aapt将Res文件夹下的资源生成相应的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.在Activity的onCreat方法中使用XmlResourceParseropenXmlResourceParser(String
fileName)方式获取Layout文件
通过setContentView(view)设置为整个Activity的布局
使用当中的控件(ButtonTextView等)时
仍能够通过R.id.XX的方式获取
此时通过解析XML文件,系统以及获取到你这个XMl中各个控件Id(此时的Id是否会与第三方资源Id冲突
这个问题我认为不会发生,毕竟findViewById()给出的定义是寻找该XML下的控件的Id
有哪位对这个毕竟清楚
请教下?)
4.获取到控件之后,能够通过setTextsetBackground setImageDrawable等方法设置
文字
背景
展望资源。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Android 将Activity殴打jar包 对于由第三方使用 解决XML 图片 文本资源并不难过进入jar包装问题!的更多相关文章
- [转]myeclipse 生成JAR包并引入第三方包
myeclipse 生成JAR包并引入第三方包 我用的是myeclipse8.0 首先用myeclipse生成JAR 一.生成JAR包 1.点选项目右键—>Export 2.Java—>J ...
- Ant打包可运行的Jar包(加入第三方jar包)
本章介绍使用ant打包可运行的Jar包. 打包jar包最大的问题在于如何加入第三方jar包使得jar文件可以直接运行.以下用一个实例程序进行说明. 程序结构: 关键代码: package com.al ...
- maven上传jar包到nexus私服后的存放路径 以及 使用IDEA上传jar包的步骤
maven上传jar包到nexus私服的方法,网上大神详解很多,那么上传后的jar包存放到哪里了呢? 在下使用nexus3.2.1版本,在本地搭建了私服,使用maven上传jar包.最后结果如下: 点 ...
- maven依赖jar包时版本冲突的解决
https://blog.csdn.net/sinat_39789638/article/details/78005945 共有四种解决方式: 1.第一声明优先原则: 在pom.xml配置文件中,如果 ...
- External Libraries中没有Maven的jar包的原因(已解决)
**深坑!** ## External Libraries中没有Maven的jar包的原因(已解决) 2021年3月1日 --- 搭建一个新项目 IDEA 从 Git 上拉 拉去Maven项目然后 m ...
- com.android.dex.DexException: Multiple dex files define(jar包重复引用) 错误解决
前段时间开始转入Android studio,不料果真使用时候遇到些错误,在此记下! 出现这个错误往往是在libs目录下有个jar包,然后在gradle文件中又引用了,即: 共同引用了. 解决方法: ...
- [Android] Android工程以jar包形式向第三方应用提供服务
参考: http://www.cnblogs.com/0616--ataozhijia/p/4094952.html 以API 19为例: 系统默认提供的 android.jar整体大小为: 21.8 ...
- AndroidStudio工程文件导入Jar包和So第三方库
AndroidStudio 导入Jar包和第三方So库 在android开发中,需要导入许多第三方的jar包和so库来支持,包括像许多第三方的支持平台--友盟,环信.融云.极光推送.微博.腾讯等第三方 ...
- 带有res资源文件的项目 需要导成jar包 供别人使用的解决方法
比如说自己的成品项目,名字是MyObject,需要导出成jar包,让别人的项目调用,但是自己的项目还包含有图片.layout布局.libs里面的依赖包等等: 步骤: 1.MyObject项目需要“is ...
随机推荐
- 透神器ngrok
内网穿透神器ngrok 相信做Web开发的同学们,经常会遇到需要将本地部署的Web应用能够让公网环境直接访问到的情况,例如微信应用调试.支付宝接口调试等.这个时候,一个叫ngrok的神器可能会帮到你, ...
- Thinkphp入门 五 —模型 (49)
原文:Thinkphp入门 五 -模型 (49) [数据库操作model模型] model 模型 数据库操作 tp框架主要设计模式:MVC C:controller 控制器 shop/Li ...
- autotools入门笔记(一)
GNU autotools作用:收集系统配置信息并自动生成Makefile文件. GNU autotools主要包括三个工具:autoconf.automake.libtool,还有很多辅助的工具,包 ...
- Atitit.jquery 版本号新特性attilax总结
Atitit.jquery 版本号新特性attilax总结 1. Jq1.4 1 2. 1.5 1 3. 1.6 3 4. Jq1.7 3 ⒉提升了事件委派时的性能有了大幅度的提升.尤其是在ie7下: ...
- 分析javascript关闭
1.什么是闭包 1)官方解释 一个拥有多个变量和绑定了这些变量的环境的表达式(一般是一个函数).因而这些变量也是该表达式的一部分. 我的理解:所谓的闭包就是连接函数内部和函数外部的一座桥梁.使得在外部 ...
- cannot run program "git.exe":CreateProcess error=2
在使用android studio从git上check项目的时候报错cannot run program "git.exe":CreateProcess error=2 请检查下面 ...
- Common Lisp Style Guide - Ariel Networks Labs
Common Lisp Style Guide - Ariel Networks Labs Common Lisp Style Guide
- [初探iOS开发]storyboard的使用
storyboard的目的是为了方便的设计程序view之间的关系,使得程序员把精力都放到核心业务逻辑之上.
- nginx & flup & django & python3.x @ window7配置备忘录
最近考虑原Prism建筑(非职业.半专业人士认为C/S建筑)至B/S迁移,主要是由于部署问题,包括两个因素:已经做,虽然一键安装和部署的一个因素,心存顾虑,虽然我一再声明这是一个绿色软件.还有一个因素 ...
- Python 分析Twitter用户喜爱的推文
CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-5 @author: guaguastd @name: an ...