Android的四大组件及应用安装安全问题(4)
来源:互联网 发布:金和网络老十佳 编辑:程序博客网 时间:2024/06/05 05:45
Android的四大组件及组件间通信
如果想对四大组件有深入的了解,那永远不要停留在一些条条干干的SDK API的认识,需要了解他的通讯,他的复用,他的边界问题,这样才会对四大组件有透明的认识.
四大组件简洁
Activity
- 没有Activity 可以显示UI吗?
可以的,我们可以直接操作view显示,其实Activity 只是为了让这些view 富有逻辑的意义,也就是说Activity 主要是让这些逻辑相关的view 抽象成一个一个相关page,这样就可以使这些page进行前进后退等逻辑行为.
- 没有Activity 可以显示UI吗?
Service
可以理解成一个没有UI的后台耗时的服务.ContentProvite
Android中资源共享的一种方式.然而对于一些外部app来说资源都是private的,那么ContentProvite为什么可以进行访问到.
其主要是对于一些permission可以控制的情况下,资源才可以访问到.BroadcastReceiver,
相当于就是在system level中实现了一个observer(观察者模式)广播的设计模式.主要是为了解决一对多的耦合问题
.
Android是基于组件的复用,组件间的边界透明
Android中编程的模型比较特殊,他不是根据进程,也不是根据application,进程和application的边界,都被google故意的去掉了,对于应用开发者说只认识一些组件,组件,组件. 他们直接的通讯都是基于intent,也就是说你只要发布一个Intent
不用在意他到底是如何实现的,这些都交给系统去处理,你只要保证intent 指令的正确性即可.
组件的puclic 和 private
- android:exported字段
- exported的default值
- override default值
组件的permission assignment
- Securing Activities(Service也是一样)
Android定义了一些安全的方式来限制特殊activity的启动,如果要start该activity就必须申请对应的权限.
如下面代码如果要启动MyActivity 必须要申请下面权限才可以.
<activity android:name=".MyActivity" android:permission="com.testapp.permission.START_MYACTIVITY"> <intent-filter> </intent-filter></activity>
应用安装的安全
应用安装的安全性考虑和调用方式
- 应用安装(安装/卸载/升级)这个过程是一个高特权/风险的操作.
- 所以用户必须可知/可控
- 主流实现方式: 客户智能委派而不能直接操作.
- 调用安装传统系统模式: 发送intent给系统的
Package Install app
下面代码会显示UI告诉用户此时需要安装的app
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(i);
特权安装模式:
系统的Package Install App
内部会调用PackageManagerService
的Install Package
,该操作与android.permission.INSTALL_PACKAGES
绑定,而且该permission 的protection level="signature|system"
,也就是说需要是有同样private key或者系统应用才可以调用.静默安装:
所谓的静默安装方式只存在ROOT
手机上,开发者可以选择:
基于pm cmd : pm install-r
静态的安装
应用安装时怎么做UID/GID分配
在安装时应用的UID/GID就已经被系统分配好,并通过PackageManagerService
将分配好的UID/GID(都是10000+)
存储到Databases里,当你run app时就会从该db从获取它的UID/GID,也就是安装和运行的UID/GID 相同.
PMS与安装详情请点击
- Android的四大组件及应用安装安全问题(4)
- Android四大组件安全问题
- Android 应用四大组件
- Android应用的四大基本组件介绍
- android 四大组件之一 Service 的应用
- Android开发的四大组件及使用
- Android应用基础及原理概要,四大组件
- Android四大组件---Activity之启动模式及启动模式的应用场景
- Android的四大组件
- Android的四大组件
- Android的四大组件
- Android的四大组件
- Android的四大组件
- Android的四大组件
- android的四大组件
- Android的四大组件
- Android的四大组件
- Android的四大组件
- 接口
- csdn我来了
- php仿QQ等级太阳显示函数
- 【HDU 3555】Bomb 数位dp模板
- Linux设备驱动之I2C架构分析
- Android的四大组件及应用安装安全问题(4)
- 使用github、Packagist、composer发布
- 分离php和mysql搭建LAMP平台
- 获取一个文件夹下的数据排版格式相同的Excel表格的数据
- 学习笔记:zlib+boost 的用法
- Gradle Build Running 太慢了。。。。。。
- Android service、broadcast后台启动Activity
- 微信 WEUI 的 switch button 精简提取
- HashMap vs ConcurrentHashMap — 示例及Iterator探秘