android开发简介

Android简介

2014-5-20

本文以android官方文档为主要参考,而写本文的初衷在于经过差不多一年时间的android学习和使用,发现自己依然是个菜鸟,而又重新看了一些书,发现实在对自己难以提高。

本文内容来自http://developer.android.com/guide/index.html及其扩展内容。

Android是一个丰富的应用程序开发框架,在此框架上可以为移动设备开发创新性的应用程序和游戏。Android框架(android framework)基于linux内核。

Android Apps 提供多个程序进行点。Android程序是由多个不同的组件联合在一起构成的,这些组件都可以单独的调用。例如一个activity提供一个单独的用户界面,一个service则在后台独立的运行。在一个组件内,你可以使用一个intent来启动另外一个组件。甚至你可以启动一个来自非自己app的组件,如你可以在你自己的app中启动打电话程序的界面(一个activity)。这个模型给一个app提供了多个入口,而且,对于一个其他app可能调用(invoke)的action,任何app都表现得像它本身的行为一样。

Android app 可以适配不同的设备。Android提供了一个具有适应性的app framework,其允许你对不同的设备提供唯一的一套资源。例如,你可以为不同屏幕尺寸的设备提供不同的xml布局文件,系统将根据当前的设备决定使用哪个布局文件。

如果你的app需要某些特殊的硬件支持,如摄像头,那么你可以在运行时查看它的可用性。如果有必要的话,你可以在androidManafest文件中声明你所需要的硬件支持,app market 如google play store 会在用户安装的时候进行筛选。

 

基础

Android app 使用java语言编写,当编译的时候,代码,所有数据和资源文件都被打包为APK文件:android package,他其实是压缩文件。Apk 包含了android app 的所有内容,且是安装时需要的文件。

一旦app安装到一个设备上,每个app都运行在自己的安全沙箱中。主要是以下四点:

  • android 操作系统是一个多用户linux操作系统,每个app都是一个不同的用户。
  • 默认情况下,系统为每一个app分配一个唯一的Linux User ID(这个id归系统拥有,对app是透明的。)系统为这个app中的所有文件设置权限,来保证只有被分配这个user ID 的app 可以访问这些文件。
  • 每个进程都拥有自己的JVM,所以在运行期间一个app的程序代码和其他app是隔离的。

  • 默认情况下,每个app都在自己的进程中运行。当一个app的任何组件需要被运行的时候,系统开启这个进程;当此进程再也不被需要或者系统为其他app的运行回收内存的时候,结束进程。          

       基于以上几点,android 系统实现了最小权限原则。即,默认情况下,每个app只能访问那些它需要完成其功能所需要的组件。这就创造了非常安全的环境,一个app它不能访问那些它没有被授权的系统权限。

然而,当然有不同app间共享数据和访问系统服务的方法。

首先,可以使不同的app共享一个相同的linuxUser ID,这样就可以相互访问自己的各自的文件。为了保护系统资源,具有相同linux user ID 的apps在同一个进程和jvm中运行(他们必须使用相同的签名)。

其次,app可以请求系统权限来访问设备数据,如联系人,短信,SD卡,相机,蓝牙等等。这些权限必须在安装的时候授予。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值