application

来源:互联网 发布:全球最贵的域名 编辑:程序博客网 时间:2024/05/19 09:03

路径: android.app/

相关类:

Application

ApplicationErrorReport

ApplicationErrorReport.AnrInfo

ApplicationErrorReport.CrashInfo

ApplicationErrorReport.RunningServiceInfo

ApplicationErrorReport.BatteryInfo

Application

继承关系:  java.lang.Object

                            android.content.Context

                                   android.content.ContextWrapper

                                               android.app.Application

Manifest.xml中相关属性

android:debuggable="true | false": 应用程序是否能够debug,默认为false, 通常情况下android平台会自动设置该值,如在eclipse中运行则该值设置为true,用apk工具导出apk该值

                                                    为false,使用ant打包时,取决于打包是release还是debug.通常在开发中会设置debug开关控制日志输出,也可以读该值控制日志输出,这样不

                                                    用每次都去修改开关的值.

android:description="text":应用程序的描述文本,用户下载安装一个应用时会看到此描述信息。

android:enabled="true | false": 是否允许应用程序内的某个组件被实例化,主要应用于兼容不同系统版本apk而需要动态禁用某些组件的场景.

android:hasCode="true | false":是否包含代码,如果设置为false,则应用运行时不会装载任何java代码,通常在纯c\c++开发中需要设置false.

android:hardwareAccelerated="ture | false": 是否启用硬件加速,在3.0后,可以使用硬件加速功能,提高绘图的速度。主要是针对openGL绘图做的优化,但是对普通2d绘图也

                                                      会有作用,能够帮助整个应用性能的提升,但是也会有负面的影响,造成自定义的绘图组件不能正常的显示。

android:logo="drawable": 应用程序状态栏的图标(如果状态栏显示),与android:icon的区别是icon是在桌面上显示的,而logo是程序运行后显示在状态栏的,从作图上来讲logo

                                       的图片没有大小限制,也不用向icon那样,方方正正。如果没设置logo,通常默认显示icon.

android:manageSpaceActivity:指定管理应用程序目录的activity,应用程序数据目录:data/包名/, 如果不指定会由系统界面管理,用户可能会删除应用程序的所有数据,如果不

                                                 允许用户进行删除数据的操作,就必须自定义管理数据目录的activity,以限制用户的操作.

android:persistent="true | false": 是否一直运行,可使进程提升至系统进程,但是在测试中并未实现该功能,在实际中用到时需要更细致的测试。

 

overview

       保存或获取与整个应用程序有关的数据状态的基类, 允许扩展此类并且在Manifest.xml文件中指明类的名字,此类将在应用程序进程创建的时候初始化。

       官方开发文档中说明通常不需要扩展此类,但在通常的应用开发中,通常扩展此类来保存全局的数据状态或管理activity堆栈,可以通过单例模式来提供该类的对象。

method:

     /**构造方法**/

      public Application(){

            super(null);

     }

    /**当系统在低内存状态运行时会调用此方法(结束后台线程后内存依然紧张),通常在该方法做一些释放内存的操作,比如清除内存缓存,释放不必要的数据库或网络连接

         系统将在该方法return后调用gc()*/

   public void onLowMemory(){}

   /**在应用程序启动后,创建application的实例后会调用该方法,此方法会在创建其它任何的activit,service,recever对象之前调用。此方法要执行的尽可能快,因为此方法的执行时间会直接影响

      创建 第一个activity,service或其它组件的性能,if override this method ,be sure to call super.onCreate()**/

  pulbic void onCreate(){}

  /**当系统结束应用程序的时候会调用该方法,适用于模拟环境之中,在真实的应用开发当中,此方法几乎没什么作用***/

  public void onTerminate(){}

  /**当设备配置发生变化的时候  如屏幕方向、显示、隐藏键盘,系统会调用该方法,通常在该方法内部要重新加载和view有关的一些资源

      如果activity也重写了该方法 则会先调用application的该方法,然后会调用activity的该方法,既:在此种情况下onConfigrationChanged有可能会调用两次***/

  public void onConfigrationChanged(Config config){}

  /**当应用程序由前台转向后台后,系统会选择合适的时机调用该方法,以释放该应用程序所占用的不是必须的内存 既内存修剪  为前台内存提供更多的内存空间 level是可设置的整理级别

       实现该方法可以尽可能的保持我们的应用程序由前台转向后台后,由于内存不够而被系统杀掉,简单说就是转向后台后主动的去释放掉一些内存资源**

  public void onTrimMemory(int level){}


ApplicationErrorReport

简介:用于应用程序的错误描述,主要是AMS捕获到错误后通过该类把错误对象的描述信息发送给Logcat

有五种错误类型 分别是 

/*未初始化的错误对象**/

type_none

/**应用程序发生crash错误*/

type_crash

/**系统认为该应用程序所消耗的电量太多**/

type_battery

/**系统无响应**/

type_anr

/**系统认为运行了一个不需要的后台service**/

type_runningservice

针对以上错误类型,分别定义了CrashInfo,BatteryInfo,AnrInfo静态内部类来表示具体的错误对象。

0 0
原创粉丝点击