您的位置:首页 > 移动开发 > Android开发

Android 知识点

2015-07-06 15:58 471 查看
来自个人百度空间的文章---2014.5.5

二、项目中的知识点

  1、Activity 知识点

    (1)生命周期 onCreate(创建时被调用) onStart(创建或者从后台回到前台需要) onRestart(从后台回到前台需要) onResume(创建或者从被覆盖,后台回到前台需要)
onPause(被覆盖,锁屏时被调用) onStop(退出,进入另一个activity时被调用) onDestroy(退出被调用)        

            1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

            2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

            3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

            4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

            5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

            6.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

            7.onSaveInstanceState:

                (1)在Activity被覆盖或退居后台之后,系统资源不足将其杀死,此方法会被调用;

                (2)在用户改变屏幕方向时,此方法会被调用; 

                (3)在当前Activity跳转到其他Activity或者按Home键回到主屏,自身退居后台时,此方法会被调用。

                onSaveInstanceState的调用顺序是在onPause之前。

            8.onRestoreInstanceState:

                (1)在Activity被覆盖或退居后台之后,系统资源不足将其杀死,然后用户又回到了此Activity,此方法会被调用;

                (2)在用户改变屏幕方向时,重建的过程中,此方法会被调用。

                onRestoreInstanceState的调用顺序是在onStart之后。

    (2)启动方式

            1、standard 模式:每次激活Activity时都会创建Activity,并放入任务栈中。

            2、singleTop 模式:如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。

            3、singleTask 模式:如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。

            4、singleInstance 模式:在一个新栈中创建该Activity实例,并让多个应用共享该栈中的该Activity实例。一旦此模式的Activity的实例存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。

    (3)task 

            1、每个应用都有自己的task,是一个存放activity的队列

            2、affinity可以起到标示task的作用。

            3、这里涉及 Intent 的flag知识点和<activity>task相关的属性。

                FLAG_ACTIVITY_NEW_TASK 根据affinity找宿主task

                FLAG_ACTIVITY_CLEAR_TOP 如果在栈中发现存在Activity实例,则清空这个实例之上的Activity,使其处于栈顶。这个在standard启动模式很有用

                FLAG_ACTIVITY_SINGLE_TOP 类似singletop启动模式

                FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET 

[b][b][b]                [b]FLAG_ACTIVITY_RESET_TASK_IF_NEEDED[/b][/b][/b][/b]

[b][b][b][b]                [b]android:allowTaskReparenting   是否移动到共有的task[/b][/b][/b][/b][/b]

                android:alwaysRetainTaskState  是否保持task状态,默认情况下应用在后台待够30分钟后,系统会清空除根activity之外的其他activity

                android:clearTaskOnLaunch       

[b][b][b][b]                [b]android:finishOnTaskLaunch[/b][/b][/b][/b][/b]

  2、Fragment 

            Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。可以看做是一个子Activity,有删除,添加,修改的功能。

            1、Fragment的生命周期 onAttach(被绑定到activity时) onCreate() onCreateView(创建和fragment关联的view hierarchy时) onActivityCreated(当activity的onCreate返回时)
onStart() onResume() onPause() onStop() onDestroyView(当和fragment关联的view hierarchy被移除时) onDestroy() onDetach(被解除关联时)

            2、设计哲学 ---模块化 使代码耦合性降低,结构分明。

            3、Fragment分支下的好东西

                 DialogFragment (显示一个浮动的对话框)

                 ListFragment (显示一个由一个adapter管理的listview)

                 PreferenceFragment (显示一个选项列表)

            4、可以添加到ActionBar中

 3、 布局 

               线性布局(分横纵布局)

               绝对布局(可以精确定位view的位置)

               相对布局(可以定义view之间的关系)

               帧布局(view都放在0,0位置,上面的view遮盖下面的view)

               表格布局(可以定义行列)

               其他布局(listview,gridview,tabview)

4、Handler

           解决一部分耗时不能在主线程中完成的任务,两点用途:

           1、传递Message。用于接受子线程发送的数据,并用此数据配合主线程更新UI。(回来完成主线程能完成的任务)

           2、传递Runnable对象。用于通过Handler绑定的消息队列,安排不同操作的执行顺序。(去子线程完成主不能完成的任务)

5、数据管理方式

          1、SharedPreferences:是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据。

          2、ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制。

          3、SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型。

          4、File: 即常说的文件(I/O)存储方法,常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情。

6、ANR 

          在android上,如果你的应用程序有一段时间响应不移灵敏,系统会向用户提示“应用程序无响应”

7、动画

         两种,一种是tween动画,一种是frame动画。

         Tween:动画主要包括图片的放大缩小、旋转、透明度变化、移动等等操作。(使用AnimationUtils)

     
   Frame:动画则简单得多了,就是把一张张的图片连续播放产生动画效果。(使用AnimationDrawable)

8、Android
系统结构

      android系统架构分从下往上为Linux内核层、运行库、应用程序框架层和应用程序层。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: