安卓开发中一些知识的对比

1.<uses-permission>和<permission>

    两者之间的不同之一就是,作用域不同,在manifest.xml文件中,<uses-permission>是和<application>同级的节点,一般<uses-permission >是在</application>后面的。但<permission>就不同了,是定义在<application>和</application>之间,和Activity、Service同级别的,同时使用group的权限组可以大幅减少你同类型相似权限的声明。(这段表述有误,应该是同级别)

    其二可能就是<uses-permission>是官方定义的权限,是调用别人的东西的时候自己需要声明的权限,<permission>是自己定义的权限,就是别人调用这个程序时需要用<uses-permission>来声明。

    在一般情况下实际上不需要为自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用<permission>这个标签,很显然这个标签可以让我们声明自己程序的权限。

原文链接:https://blog.csdn.net/lilu_leo/article/details/6940941

一个案例:https://www.jianshu.com/p/9e181fbf67e3

2.libs与jniLibs

(1)libs: librarys

用来存放三方库的地方,比如 *.jar*.aar
Project 视图下能看到, Android 视图下看不到。

(2)jniLibs: java native interface librarys

Android Studio 新添加的,默认用来存放 .so 文件。

(3)Q: 然而我们经常能看见将 *.so 文件放在 libs 中。那有何必多一个这个 jniLibs 目录呢。
        A:AS 中它会自动去加载 jniLibs 目录中的 *.so 文件。如果你放在了其它任何目录,你必须要告诉它你将这些文件放在那里了(重定向)。
原文链接:https://www.jianshu.com/p/e64611474853

3.Jar signature 和 Full apksignature

Android 7.0中引入了APK Signature Scheme V2,而V1来自JDK。

两者区别:

V1:仅验证未解压的文件内容,这样APK 签署后可进行许多修改 ,可以移动甚至重新压缩文件。

V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。 正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。

V2的好处:更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证), 从而加快应用安装速度。如有任何自定义任务篡改 APK 文件或对其进行后处理(无论以任何方式), 那么V2 签名会有作废的风险,从而导致您的 APK 与 Android 7.0 及更高版本不兼容。

使用总结:

1、打包签名时只勾选V1签名并不会影响什么,但是在7.0及以上不会使用更安全的验证方式;

2、只勾选V2签名7.0以下安装会直接显示未安装,7.0及以上则使用V2的方式验证;

3、同时勾选V1和V2则所有机型都没问题。

原文链接:https://www.cnblogs.com/zyun/p/8955495.html

发布了120 篇原创文章 · 获赞 23 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qew2017/article/details/104583921