android应用框架

标签: android 应用 框架 | 发表时间:2014-05-28 06:58 | 作者:fanflame4444
出处:http://blog.csdn.net

原文地址:http://developer.android.com/guide/components/fundamentals.html

android应用程序一旦装进设备,每个程序会在它自己安全的沙盒里运行。

1.android操作系统是一个多用户linux系统,每一个应用程序是一个用户。

2.默认情况下,系统会为每个app分配唯一的linux用户id(这个id只会被系统使用,并且只会被这个app知道),系统为每个app的所有文件都设置了权限,只有被分配了这个app用户ID的程序可以访问它。

3.每个进程有它自己的VM,一个app的代码和其他的是隔离运行的。

4.默认情况下,每个app运行在它自己的liunx进程下。当app的任何一个组件需要被执行的时候,android会开启进程,当它不在需要或者系统必须为其他app恢复内存时,进程就会被关闭。

android用这种方法,实现了最少特权原则。那就是:每个app默认情况下只能访问它需要的控件来工作而不需要其他多余的。这样创建了一个非常安全的环境:app不能访问系统其他未被授权的部分。

但是,有些方法可以用来和其他app共享数据和访问系统服务:

1.安排两个app来共享相同的linux用户ID是可以的,这种情况下他们可以访问各自的文件,为了保持系统资源,拥有相同userID的app可以在一个linux进程中运行并共享一个VM(应用必须使用相同的证书)。

2.一个app可以请求权限来访问设备数据,比如用户联系人,短信等。所有的app权限必须在应用被安装的时候被用户确认。

以上解释app存在于系统的基本信息,本文档剩余内容向你介绍:

1.在你app中定义的核心框架组件。

2.声明组件并且要求设备特征的manifest文件。

3.那些从你app代码中分离的资源,允许你的程序要优雅地优化其行为的各种设备的配置。

APP组件

app组件是android应用的基本

Activities,Services(后天长时间的运行或为远程进程工作),ContentPrivider,Broadcast receiver.

当系统start一个组件,那系统会为那个app start一个进程(若还没运行),而且实例化那个组件需要的类,比如:当你的应用想通过系统照相来得到照片,那么进程中跑得activity是属于Camera app的而不是你的app的。因此,不想其他的大部分系统,Android应用没有一个入点(比方说main()).

激活的组件

Manifest文件

在android系统开始一个组件前,系统在读manifest文件时必须知道该组件存在。你的app必须在这个存在于app工程根目录的文件中声明所有的组件。

声明组件能力

比如:你想创建一个email应用,你可以声明一个intent filter来响应send intent像这样:

<manifest ... >
    ...
    <application ... >
        <activity android:name="com.example.project.ComposeEmailActivity">
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <data android:type="*/*" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
</manifest>
然后,如果另一个app创建一个携带ACTION_SEND的intent而且传给startActivity(),此时系统也许会启动你的activity,这样用户就可以拖拽和发邮件了。

声明app需求

为了保护你的应用程序能被安装在那些缺少你的app必须的特征的设备上,你通过在manifest文件中明确的声明一个你的应用可以安装在哪些设备上的简介是非常重要的。大多数的信息系统都不会读取,但是外部的设备比如Google play为了那些从自己设备搜索app的用户提供过滤。

比如你的应用需要一个照相机而且需要Android2.1,你应该在你的manifest文件中这样声明:

<manifest ... >
    <uses-feature android:name="android.hardware.camera.any"
                  android:required="true" />
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" />
    ...
</manifest>
这时候,那些没有照相机,而且Android版本低于2.1的设备就不能从Googleplay安装你的应用。

但是,当你的应用使用camera但不是必须拥有一个Camera,这时候你应将  required 这个属性设置为false.而且在运行时判断时候于camera,适当的禁止任何相机的特征。

App资源

从代码中分离开来来提供资源的一个重要方面是能使你给不同的设备配置提供可选的资源。比如在xml中定义UI Strings你可以将文字翻译成不同的语言并保存到分离的文件中

作者:fanflame4444 发表于2014-5-27 22:58:27 原文链接
阅读:51 评论:0 查看评论

相关 [android 应用 框架] 推荐:

android应用框架

- - CSDN博客移动开发推荐文章
原文地址:http://developer.android.com/guide/components/fundamentals.html. android应用程序一旦装进设备,每个程序会在它自己安全的沙盒里运行. 1.android操作系统是一个多用户linux系统,每一个应用程序是一个用户. 2.默认情况下,系统会为每个app分配唯一的linux用户id(这个id只会被系统使用,并且只会被这个app知道),系统为每个app的所有文件都设置了权限,只有被分配了这个app用户ID的程序可以访问它.

一些android开源框架

- - CSDN博客推荐文章
在目前软件开发行业中,流行着这么一句话“天下武功,唯快不破”. 而“快”,就不能让我们重复去制造论坛,不能去重新发明轮子. 目前开源界中已经有很多成熟的,得到了大量商用的开源软件和框架,我们就可以借鉴这有优秀的资源,才能在这个节奏速度的社会中博得一丝生存的机会. 我收集整理了一些优秀的android开源框架,希望能对android软件开发的朋友一点的帮助.

Android 程序框架设计

- - 互联网的那点事
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心. 通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作. 设计模式是在某种特别的情况下,针对某种问题的某种典型、通用的解决方法. 我们是需要适当了解并学习一些设计模式,在程序开发过程中,总是会涉及到一些框架设计,模块设计之类的东西,如果能很好理解并运行设计模式,你所设计的模块或框架将会要稳定得多,因为这些设计模式它们都是通用的解决方案,是经过实践经验了的.

Android Otto框架浅析

- - CSDN博客移动开发推荐文章
今天要介绍的是一个Android中使用得比较多的android 事件总线 EventBus模式的一个框架Otto. Otto 官网: http://square.github.io/otto/. 一、Android Studio中配置Otto (Eclipse中直接下载jar包导入). 跟之前介绍的其他的框架一样,它只需要简单地在build.gradle中配置下面一行红色字体即可.

2015推荐的Android框架

- - CSDN博客推荐文章
一、Guava Google的基于java1.6的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 这些高质量的API可以使你的JAVA代码更加优雅,更加简洁..

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.

Android的快速开发框架afinal

- - CSDN博客推荐文章
afinal 是一个android的 orm 和 ioc 框架. 而且封装了android中的httpClient,使其更加简单易用. afinal是android应用开发的终极框架. FinalActivity使用方法:. FinalHttp使用方法:. 下载地址 http://code.google.com/p/afinal/downloads/list.

Android orm 框架xUtils简介 - lsc183

- - 博客园_首页
  数据库操作建议用ORM框架,简单高效. 这里推荐xUtils,里面包含DBUtils. github地址:https://github.com/wyouflf/xUtils.   获得数据库实例建议用单例模式.   创建一个实体类,对应数据库中的表.     private int id; //主键ID,必须.

Android 应用程序

- - CSDN博客推荐文章
Android 应用程序由四个模块构造而成:Activity、Intent 、Content Provider 、Service. 下面简单介绍一下如下模块的含义:. 1、Activity  "活动". 一个Activity就是单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口并对事件作出响应.

Android框架之快速开发框架xUtil

- - CSDN博客推荐文章
做Android开发我们一般是从原生态的开始,就是调用默认那些Android代码来开发我们的应用,但是到了一定程度,我们就想着怎么来快速开发我们的应用,这个时候我们就要着手来研究框架了. 下面介绍一个很流行的框架xUtil:. xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响....