郑州网站建设哪家好怎么样,wordpress 标题 拼音,海口网站优化,wordpress购物车功能背景#xff1a;
Android12高版本以后系统生成的很多data路径下的xml都变成了二进制类型#xff0c;根本没办法看xml的内容具体如下#xff1a; 比如想要看当前系统的widget的相关数据 ./system/users/0/appwidgets.xml
以前老版本都是可以直接看的#xff0c;这些syste…背景
Android12高版本以后系统生成的很多data路径下的xml都变成了二进制类型根本没办法看xml的内容具体如下 比如想要看当前系统的widget的相关数据 ./system/users/0/appwidgets.xml
以前老版本都是可以直接看的这些system的xml其实对于调试和分析等有时候还是很有作用的 那么这到底是为什么呢要把这种用户可读的xml变成这种乱码二进制的xml难道是为了安全加密具体啥原因我们来分析分析
具体原因分析
代码路径 frameworks/base/core/java/android/util/Xml.java 具体原因可以从相关的注释看出 使用BinaryXmlSerializer最重要原因是 1、可以有更快的速度 2、更小的体积
如何把二进制变成正常可读xml
方法1 适合debug等版本上可以随意进行恢复出厂删除相关的xml的场景 具体操作 改变属性删除原来的xml或者恢复出厂让系统重新生成xml 属性修改如下 adb shell setprop persist.sys.binary_xml false 修改后在把相关的xml要进行删除重启触发重新生成xml
或者去相关代码中 修改如下 修改前看看appwidget.xml的展示数据 一堆的乱码根本没办法看
修改后的看看appwidget.xml的展示数据 明显可以看出是可以读了
方法2 这种属于已有了这种二进制格式的xml也不想清除这个xml让重新生成因为这样可能重新生成的数据就不是原来xml的数据。 所以得考虑把原来的二进制格式的xml 转化成可读xml文件 实际两种xml本事是有标识头的根据xml的标识头就可以确定是二进制xml还是普通xml,从而选择正确解析方法 不过这种工具还没有找到现成的如果实在没有考虑后续写个这种转换工具进行开源
总结
高版本安卓主要是考虑到使用二进制xml 1、二进制xml的性能方面速度比传统xml快 2、占用数据体积比传统xml要小 以上两个优势就是使用二进制xml根本原因系统默认二进制xml也是可以通过标志位修改变成普通xml但是要清除数据重新生成想要二进制xml直接变成普通xml需要对原来的二进制xml进行解析后重新写入新的普通xml
更多framework详细代码和资料参考如下链接
halperfettosurfaceflinger https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
其他课程七件套专题 点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
视频试看 https://www.bilibili.com/video/BV1wc41117L4/
更多framework假威风耗androidframework007