Android 应用编程基础

1.Android系统是一个多用户的Linux系统,默认情况下,Android系统给每一个app分配一个唯一的用户ID;每一个app运行在自己的linux进程中,每一个进程都有属于自己的VM。

2.Android的两个app可以分享相同的User ID。拥有相同User ID的app可以运行在同一个进程中并共享分一个VM(这两个app必须拥有相同的签名)。

3.Activity代表一个独立的屏幕用于和用户交互;Service运行在后台,执行耗时操作或者执行其他进程的远程调用请求;ContentProvider提供了进程间数据分享的功能;广播接收器通过接受系统或者用户自定义的广播,告知用户某事件的发生。可以在广播接收器中启动Service,从而在后台默默的做事情。

4.Android app中包含的每一个资源,Android SDK tool都会为之生成一个唯一的id,可以在xml文件和代码中通过这个id引用这个资源文件。

5.在安装apk的时候,Android系统为每一个apk分配了一个唯一的User id(PackagerManagerService做的工作),通过配置xml中的sharedUserId,可以让两个apk运行在同一个进程中,这连个apk必须要有相同的签名。

6.一个应用程序一般由多个Activity组成,其中有一个称为main Activity,作为第一次启动的时候呈现给用户的界面。每次启动新的Activity,系统都会将之压入一个后台stack(后进先出),然后获得用户焦点。当用户按下后退按键的时候,从stack中取出这个Activity然后销毁,然后取出之前的Activity予以显示。

7.当Activity的状态发生了变化,通过callback函数通知用户。Resumed状态表示Activity位于前台,并且拥有用户的焦点;Paused表示另一个Activity位于前台,但是本Activity仍然有部分可见;这个时候Activity的对象还存活着,并且还持有和window manager的联系。Stopped表示Activity位于后台,但是内存中还保留着Activity的内存,但是没有持有和window manager的联系了。在内存紧张的时候可以杀掉PausedStopped状态的Activity。

8.Android系统将执行一个相同任务而创建的Activity称之为一个task,一个task对应一组后台Activity stack。可以在manifest文件中指定Activity的lunch方式,或者在发送intent的时候指定相应的flag。这两种方式都会影响启动的Activity和当前task的关系。参考:http://developer.android.com/guide/components/tasks-and-back-stack.html#ActivityState

你可能感兴趣的:(android)