Application 基础
2016-07-27 09:30
330 查看
apk 全称是an Android package.其后缀名是以.apk结束的.每一个apk都有自己的security
sandbox.
(1):每一个apk 代表一个Linux user用户,Linux 系统会给每个apk分配一个唯一的id,只有系统知道这个id,其他app不知道这个id.系统会给apk里面的每个文件设定一个权限,只有用于这个id的app才能访问,也就是只能apk里面的文件,只能被这个apk访问,不能被其他apk访问.
(2):每一个进程拥有自己的虚拟机,这样不同apk运行的环境是隔离的。一个apk crash掉,不用影响其他apk的运行.
(3):每一个apk 都有自己的进程,当这个apk开始运行的时候,Android 会启动这个进程,当apk停止运行的时候,Android 会shut down 这个进程。还有一种情况就是当Android memory不足的时候,系统可能会shut
down 优先级比较低的进程以回收memory.
本质上app 运行在独立的环境中,但是有一些方法可以在不同的apk之间share 资源,或者让app访问系统资源。
(1):假如两个apk之前有相同的user id,则可以share资源。
(2):可以在apk的manifest文件中要求某些权限,例如方位网络等,这部分后面有详述。
APP 有activity,service,content provide,broadcast receive 组成。当apk 创建和销毁的时候每一种组件都有自己的purpose,lifecycle。
(1):每一个activity 代表一个可以和用户交互的screen,activity 之前互相独立,可以互相调用。其设计遵循高内聚,低耦合的设计思想。
(2):service 主要用于要长期运行在后台,或者work for remote process,service不能和用户交互.
(3):content provide 主要用于app之间share data.
(4):broadcast
receive 主要用于解释系统的广播通知.
其中activity,service,broadcast
receive 可以被intent 激活,content provide 只能被来自content resolve的request 激活。
可以通过startActivity(Intent)或者startActivityforResult(intent)来开始一个activity.
可以通过startService(Intent)或者bindService(Intent)方式开始一个service.
可以通过sendBrocast(),sendOrderBroadCast(),sendStrickBrocast()的方式发送一个broadcast.
可以通过contentResolve.query()的方式获得一个content provide.
所有的组件都要在manifest文件中静态声明,broadcast 可以java中动态注册.apk 所需要的权限也需要在manifest文件中声明例如:android:name="android.hardware.camera.any"。必须声明apk支持的sdk的版本,uses-sdk
android:minSdkVersion="7" android:targetSdkVersion="19"
sandbox.
(1):每一个apk 代表一个Linux user用户,Linux 系统会给每个apk分配一个唯一的id,只有系统知道这个id,其他app不知道这个id.系统会给apk里面的每个文件设定一个权限,只有用于这个id的app才能访问,也就是只能apk里面的文件,只能被这个apk访问,不能被其他apk访问.
(2):每一个进程拥有自己的虚拟机,这样不同apk运行的环境是隔离的。一个apk crash掉,不用影响其他apk的运行.
(3):每一个apk 都有自己的进程,当这个apk开始运行的时候,Android 会启动这个进程,当apk停止运行的时候,Android 会shut down 这个进程。还有一种情况就是当Android memory不足的时候,系统可能会shut
down 优先级比较低的进程以回收memory.
本质上app 运行在独立的环境中,但是有一些方法可以在不同的apk之间share 资源,或者让app访问系统资源。
(1):假如两个apk之前有相同的user id,则可以share资源。
(2):可以在apk的manifest文件中要求某些权限,例如方位网络等,这部分后面有详述。
APP 有activity,service,content provide,broadcast receive 组成。当apk 创建和销毁的时候每一种组件都有自己的purpose,lifecycle。
(1):每一个activity 代表一个可以和用户交互的screen,activity 之前互相独立,可以互相调用。其设计遵循高内聚,低耦合的设计思想。
(2):service 主要用于要长期运行在后台,或者work for remote process,service不能和用户交互.
(3):content provide 主要用于app之间share data.
(4):broadcast
receive 主要用于解释系统的广播通知.
其中activity,service,broadcast
receive 可以被intent 激活,content provide 只能被来自content resolve的request 激活。
可以通过startActivity(Intent)或者startActivityforResult(intent)来开始一个activity.
可以通过startService(Intent)或者bindService(Intent)方式开始一个service.
可以通过sendBrocast(),sendOrderBroadCast(),sendStrickBrocast()的方式发送一个broadcast.
可以通过contentResolve.query()的方式获得一个content provide.
所有的组件都要在manifest文件中静态声明,broadcast 可以java中动态注册.apk 所需要的权限也需要在manifest文件中声明例如:android:name="android.hardware.camera.any"。必须声明apk支持的sdk的版本,uses-sdk
android:minSdkVersion="7" android:targetSdkVersion="19"
相关文章推荐
- Unity防反编译的两种手段
- Android 应用使用沉浸式状态栏
- Android学习记录(二十七)--ListView刷新记录滑动位置的实现。
- Android收缩式菜单demo
- Android--------Service
- Android开发TextView实现长按复制文本功能的方法
- 分分钟教你学会 ToolBar 的使用
- 超轻量级高性能ORM数据访问组件Deft,比dapper快20%以上
- Android抽象布局——include、merge 、ViewStub
- Android Studio常用快捷键
- Android 屏幕适配方案
- 【Android】彻底理解ldpi、mdpi、hdpi、xhdpi、xxhdpi
- Android自定义控件之基本原理(一)
- 在代码中设置RelativeLayout布局中标签的android:layout_toLeftOf、android:layout_toRightOf等属性
- android 中Drawable跟Bitmap转换及常用于图片相关操作方法 - Android
- Android开发BroadcastReceiver详解
- 总结iOS开发中的断点续传与实践
- 微信中获取部门成员信息
- Android 滑动导航菜单的快速构建(一)
- 解决Spring JdbcTemplate调用queryForObject()方法结果集为空时报异常