android package.xml,Android自动化编译设置AndroidManifest.xml中package值(包名)

手动修改Android的AndroidManifest.xml中package值(包名)很简单,手动修改即可。但是项目中需要把Android的项目源代码放到服务器端在客户下载时候动态编译生成,且生成的app签名相同但包名不同(若此时包名相同就是相同的app),这种需求需要在服务器端自动化编译Android源代码时候自动调整AndroidManifest.xml中package值才能实现。查阅相关资料,结合Java对XML文件的读写技术,写了一个方法,让服务器端在编译之前预加载修改AndroidManifest.xml中的package值。

// 参数:

// File file:AndroidManifest.xml文件。

// String packagename:新的包名。

public static void operationAndroidManifestXML(File file, String packagename) {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

factory.setIgnoringElementContentWhitespace(true);

DocumentBuilder db;

try {

db = factory.newDocumentBuilder();

Document doc = db.parse(file);

NodeList nl = doc.getChildNodes();

// 只有一个node,即 manifest

// item(0)即为 manifest。

Node node = nl.item(0);

// 获得manifest的各个属性

NamedNodeMap map = node.getAttributes();

// 重新设置package的值

map.getNamedItem("package").setNodeValue(packagename);

// 写

saveXml(file, doc);

} catch (Exception e) {

e.printStackTrace();

}

}

// 保存到XML文件

private static void saveXml(File file, Document doc) {

TransformerFactory transFactory = TransformerFactory.newInstance();

try {

Transformer transformer = transFactory.newTransformer();

transformer.setOutputProperty("indent", "yes");

DOMSource source = new DOMSource();

source.setNode(doc);

StreamResult result = new StreamResult();

// 覆盖原文件

result.setOutputStream(new FileOutputStream(file));

transformer.transform(source, result);

} catch (Exception e) {

e.printStackTrace();

}

}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css 相同的css属性_CSS中的order属性

css 相同的css属性CSS | 订单属性 (CSS | order Property) Introduction: 介绍: Web development is an ever-growing field that would never find its end, therefore it is equally necessary to learn new ways to deal with the elements of the web page or …

StoreServ的ASIC架构师必须面向未来做出决断

StoreServ阵列采用特殊硬件,即一套ASIC来加速存储阵列操作,而且其每代阵列都会在这方面进行重新设计。目前的设计为第五代。 作为惠普企业业务公司研究员兼StoreServ架构师,Siamak Nazari当下主要负责第六代ASIC的设计工作。 每代ASIC设计往往…

android网页省略分页器,Android轻量级网页风格分页器

博客同步自:个人博客主页轻量级仿网页风格分页器,和RecycleView封装一起配合使用,也可单独使用,喜欢就star、fork下吧~谢谢目录功能介绍效果图如何引入简单使用依赖github地址功能介绍支持延迟加载分页支持单独分页器组件使用&…

scala重载无参构造方法_Scala中的无参数方法

scala重载无参构造方法Scala无参数方法 (Scala parameterless method) A method which accepts no parameters from the calling code. It also denotes that there will not be any empty parentheses. These are special types of methods in Scala that are initialized and…

传统存储做到极致也惊人!看宏杉科技发布的CloudSAN

传统存储阵列首先考虑的是高可靠、高性能。那么在成本上、扩展上、部署上就差。 互联网企业带来分布式存储,扩展上、部署上是优势了,但是单节点的可靠性差、数据一致性差、IO延迟大、空间浪费严重,能耗大。 这两者的问题,我想很多…

android inflate,Android 关于inflate

通俗的说,inflate就相当于将一个xml中定义的布局找出来.因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件.因此如果你的Activity里如果用到别的layout,比如对话框上的layout,你还要设置对话框上的layout里的组件(像图片ImageVie…

keil lic_LIC的完整形式是什么?

keil licLIC:印度人寿保险公司 (LIC: Life Insurance Corporation of India) LIC is an abbreviation of the Life Insurance Corporation of India. It is a public segment insurance and investment group corporation in India that generally deals with life …

“云”上存储初显规模 如何架构是关键

在安防系统中,存储设备只是给数据提供存储空间,数据存储的意义更多是为了给上层应用提供二次挖掘。目前的智能分析、大数据、图帧等技术都是基于数据存储做的数据挖掘。为了将二次挖掘应用的性能提升到最高,在优化分析算法的同时,…

在线图片转成html,在线将JPEG 转换成HTML。 免费将.jpeg 转换成.html。

描述|介绍JPEG – is a popular graphic format, which is characterized by a high degree of compression, which leads to a decrease in image quality. It uses the technology of encoding of smooth color renditions, providing the ability to reduce the amount of d…

密码学常用的算法填充模式_密码学的操作模式

密码学常用的算法填充模式Modes of operation of a block cipher are procedural rules for a generic block cipher. The different modes of operation result in different properties being achieved which add to the security of the underlying block cipher in the cry…

【干货】分享总结:MySQL数据一致性

0、导读 沃趣科技数据库工程师罗小波为大家全面分析如何保证MySQL的数据一致性。 1、活动总结 罗小波老师从MySQL的崩溃数据恢复安全性、MySQL复制原理及异步&semi sync复制原理、MySQL主从服务器如何保证数据一致性等多方面分析如何保证MySQL的数据一致性。 分享内容满满的…

设置html按钮点击事件无效果,css怎么设置按钮不能点击?

css怎么设置按钮不能点击?下面本篇文章就来给大家介绍一下使用CSS设置按钮不能点击的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。想要按钮不能点击可以通过设置按钮点击事件失效来实现;而在CSS中&…

计算机图形学与几何造型导论_计算机图形学导论

计算机图形学与几何造型导论历史 (History) The main forerunner sciences to the development of modern computer graphics were the advances in electrical engineering, electronics, and television that took place during the first half of the twentieth century whe…

android scrollview焦点,scrollview里面的edittext,当它获得焦点时如何滚动到edittext

在scrollview中有一个edittext。 (并且edittext上方的scrollview中还有其他视图。)当用户按下edittext时,键盘变得可见,并且scrollview的可见区域变得很小。因为edittext没有显示在屏幕上。 (它不会滚动滚动视图,以便显示编辑文本。)在用户按…

Linux中解压rar文件

Linux平台默认是不支持RAR文件的解压,需要安装linux版本的RAR压缩软件,下载地址为:http://www.rarlab.com/download.htm 下载之后进行解压之后,进入rar目录,运行make指令进行安装: [rootlocalhost rar]# ls…

kotlin 查找id_Kotlin程序查找立方体区域

kotlin 查找idA cube has 6 square faces, if edges length is side. Then the area of each square is side2, thus, the area of cube will be 6*sise2. 如果边的长度为side ,则一个立方体有6个正方形的面。 那么每个正方形的面积是边2 ,因此&#xff…

Python自动化运维之高级函数

一、协程1.1协程的概念协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。(其实并没有说明白~)那么这么来理解协程比较容易:   线程是系统级别的,…

android 继承listview,Android listView 继承ListActivity的用法

Android listView 继承ListActivity的用法 在手机中经常有列表方式。如果Activity中只有唯⼀⼀个List(这也是通常的情况),可以继承ListActivity来实现。我们用两个例子来学习List。List例子⼀:利用Android自带的List格式步骤⼀:Android XML文…

计算机图形学的应用

Some of the applications of computer graphics are, 计算机图形学的一些应用是 Education and Training 教育和培训 Use in Biology 用于生物学 Computer-Generated Maps 计算机生成的地图 Architect 建筑师 Presentation Graphics 演示图形 Computer Art 电脑美术 Entertai…

html页面授权码,spring boot 2.0 整合 oauth2 authorization code授权码模式

oauth2 authorization code 大致流程用户打开客户端后,客户端要求用户给予授权。用户同意给予客户端授权。客户端使用授权得到的code,向认证服务器申请token令牌。认证服务器对客户端进行认证以后,确认无误,同意发放令牌。客户端请…