代码混淆-proguard
编译成APK的营养程序也存在被反编译的风险,proguard在代码层面上保护Android应用程序
应用权限声明、权限检查机制
任何应用当使用受限资源的时候,比如通讯录,sd卡存储权限的时候,都需要向系统申请授权,
通过用户授权才能使用。让用户知道应用使用了自己的哪些权限。
应用签名-数字证书
每一款APP都会有一个数字证书(APP的签名),数字证书用于保护APP的作者对其APP的信任关
系,只有拥有相同数字签名的APP,才会在升级时被认同是同一APP。
Linux内核层安全机制——UID、访问权限控制
Android是基于Linux内核开发的,所以 Android继承了Linux的安全特性,比如文件访问
机制,Linux文件系统的权限是由User,group,other与读(R)、写(w)、执行(x)的
不同组合来实现的。同样 Android也实现了这套机制,通常情况下,只有System、root用户
才有权限访问到系统文件,而一般用户则无法访问。
Android 的APP运行在虚拟机中,因此才有沙箱机制,可以让应用之间相互隔离。通常情况下,不同
应用之间不能相互访问,每个APP都有与之对应的UID,每个APP也运行在单独的虚拟机中,与其他应
用完全隔离。应用之间相互不受影响,即使一个应用程序崩溃,也不会导致其他应用异常。