Android知识总结(一)

1、The difference of Dalvik and JVM?**
    
    A、编译后的文件格式不一样  
        Dalvik是 .dex--->.odex。
        JVM是  .class--->.jar
    B、基于的架构不一样(存储方式)
        Dalvik是基于寄存器的,是在cpu内部的,利用总线,效率会更高
        JVM是基于栈的架构 

**2、Android的体系结构**

    A、Application
    B、Application Framework
        Activity Manager 管理应用程序的生命周期
        Window Manager   启动应用程序的窗体
        View system        
        Sensor Manager    传感器
        Location Manager 位置管理
    C、函数库(Android Runtime Library)
        webkit,SQLite,SSL,OpenGL,SGL
    D、Linux内核(Kernel)
        安全机制,内存管理,进程管理,网络协议栈,电源管理,wife驱动,显示驱动。

**3、adb: android debug  bridge(安卓调试连接桥)**
        
        采用的是Socket(IP+端口号)的方式进行链接
        reset  adb =    adb kill-server
                             adb start-server


**4、DDMS:    Dalvik Debug manager System**

5、    adb install    ***.apk
    
    a,把当前apk拷贝到/data/app目录下
    b,在/data/data目录下会建立一个目录,这个目录和包名一致。


二、Android应用程序的组成(四大组建)
    
1. Activity     Content Provider        Broadcast     Service
     view        内容提供者(数据库)    广播        服务

    Intent意图(是连接四大组建的纽带)
2.  assert和res目录的区别
      a、res下的文件会在R.java文件里面产生一个Id,并会把资源文件进行压缩
      b、assert不会产生id,也不会进行压缩

 三、Android核心组建Activity

     1、MainActivity.java对应一个activity_main.xml

     2、fill_parent(由于使用时描述不清楚,所以变成了match)

          match_parent  适配父容器

          wrap_content  包裹内容

     3、创建Activity的步骤

               定义一个类去继承Activity、

               重写Activity里面的onCreate方法、

               在androidmanifest.xml里面进行注册、

               新建一个对应的布局文件,添加响应的组建

     4、intent-filter  展示应用程序的图标

     5、button点击事件写法有四种:

                 a、直接在类中实现OnClick接口

                 b、匿名内部类

                 c、内部类  

                 d、新类(Context  传值)Context上下文描述应用程序的相关信息

四、Activity的生命周期

      1、OnCreate--->    当Activity被创建时执行

           OnStart--->        当Activity看得见,但是还不可进行交互

           OnResume----> 当Activity可以看得见并且可以进行交互的时候

           OnPause---->    当Activity不能响应事件时

           OnStop---->       当Activity看不见时

           OnDestroy         当Activity被销毁时

 
Android知识总结(一)
 

      2、可视生命周期:

             OnStart----->OnStop

      3、前台生命周期:

            OnResume--->OnPause

       4、横竖屏切换生命周期:

             a、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

             b、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

             c、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

            android:screenOrientation="landscape"是限制此页面横屏显示,

            android:screenOrientation="portrait"是限制此页面数竖屏显示。

             步骤一:

              ctrl+F进行横屏切换

              Activity会被销毁并重新创建

                     onSaveInstanceState-->
                     onPause-->
                     onStop-->
                     onDestroy-->
                     onCreate-->
                     onStart-->
                     onRestoreInstanceState-->
                     onResume-->

             步骤二:

                再按 ctrl+F切换到竖屏,会执行两边生命周期

                   onSaveInstanceState-->
                   onPause-->
                   onStop-->
                   onDestroy-->
                   onCreate-->
                   onStart-->
                   onRestoreInstanceState-->
                   onResume-->
                   onSaveInstanceState-->
                   onPause-->
                   onStop-->
                   onDestroy-->
                  onCreate-->
                  onStart-->
                  onRestoreInstanceState-->
                  onResume-->

            步骤三:

                修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation",执行步骤1

                     onSaveInstanceState-->
                     onPause-->
                     onStop-->
                     onDestroy-->
                     onCreate-->
                     onStart-->
                     onRestoreInstanceState-->
                     onResume-->

           步骤四:

              再执行步骤二,发现不会再打印相同信息,但多打印了一行onConfigChanged

                     onSaveInstanceState-->
                     onPause-->
                     onStop-->
                     onDestroy-->
                     onCreate-->
                     onStart-->
                     onRestoreInstanceState-->
                     onResume-->

                    onConfigurationChanged-->

 五、Intent(意图,即对即将执行的操作的描述)

      1、显示意图(显式的去调用)

      2、隐式意图

                    意图过滤器:只要满足意图过滤器中的设置(动作、类别、数据)

                                         该意图就能被激活

         非常清楚包名和雷鸣时,用显式意图,不清楚时使用隐式意图。

     3、传数据

            使用方法:putExtra

             返回值:setResult                     onActivityResult

                

相关推荐