您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > android基本知识点总结
一,android四大组件Activity、Service、BroadcastReceiver、ContentProvider二,Activity生命周期三,横竖屏切换时的生命周期1、新建一个Activity,并把各个生命周期打印出来2、运行Activity,得到如下信息10-2302:35:54.261:INFO/chenys(4385):onCreate--10-2302:35:54.271:INFO/chenys(4385):onStart--10-2302:35:54.286:INFO/chenys(4385):onResume--3、按crtl+f12切换成横屏时10-2302:36:58.331:INFO/chenys(4385):onSaveInstanceState--10-2302:36:58.411:INFO/chenys(4385):onPause--10-2302:36:58.462:INFO/chenys(4385):onStop--10-2302:36:58.481:INFO/chenys(4385):onDestroy--10-2302:36:58.572:INFO/chenys(4385):onCreate--10-2302:36:58.622:INFO/chenys(4385):onStart--10-2302:36:58.632:INFO/chenys(4385):onRestoreInstanceState--10-2302:36:58.642:INFO/chenys(4385):onResume--4、再按crtl+f12切换成竖屏时,发现打印了两次相同的log10-2302:38:14.172:INFO/chenys(4385):onSaveInstanceState--10-2302:38:14.172:INFO/chenys(4385):onPause--10-2302:38:14.172:INFO/chenys(4385):onStop--10-2302:38:14.172:INFO/chenys(4385):onDestroy--10-2302:38:14.281:INFO/chenys(4385):onCreate--10-2302:38:14.301:INFO/chenys(4385):onStart--10-2302:38:14.312:INFO/chenys(4385):onRestoreInstanceState--10-2302:38:14.331:INFO/chenys(4385):onResume--10-2302:38:14.812:INFO/chenys(4385):onSaveInstanceState--10-2302:38:14.852:INFO/chenys(4385):onPause--10-2302:38:14.861:INFO/chenys(4385):onStop--10-2302:38:14.892:INFO/chenys(4385):onDestroy--10-2302:38:14.921:INFO/chenys(4385):onCreate--10-2302:38:15.021:INFO/chenys(4385):onStart--10-2302:38:15.031:INFO/chenys(4385):onRestoreInstanceState--10-2302:38:15.111:INFO/chenys(4385):onResume--5、修改AndroidManifest.xml,把该Activity添加android:configChanges=orientation,执行步骤310-2302:42:32.201:INFO/chenys(4875):onSaveInstanceState--10-2302:42:32.232:INFO/chenys(4875):onPause--10-2302:42:32.301:INFO/chenys(4875):onStop--10-2302:42:32.311:INFO/chenys(4875):onDestroy--10-2302:42:32.402:INFO/chenys(4875):onCreate--10-2302:42:32.471:INFO/chenys(4875):onStart--10-2302:42:32.471:INFO/chenys(4875):onRestoreInstanceState--10-2302:42:32.481:INFO/chenys(4875):onResume--6、再执行步骤4,发现不会再打印相同信息,但多打印了一行onConfigChanged10-2302:44:41.151:INFO/chenys(4875):onSaveInstanceState--10-2302:44:41.151:INFO/chenys(4875):onPause--10-2302:44:41.151:INFO/chenys(4875):onStop--10-2302:44:41.151:INFO/chenys(4875):onDestroy--10-2302:44:41.371:INFO/chenys(4875):onCreate--10-2302:44:41.421:INFO/chenys(4875):onStart--10-2302:44:41.521:INFO/chenys(4875):onRestoreInstanceState--10-2302:44:41.541:INFO/chenys(4875):onResume--10-2302:44:42.002:INFO/chenys(4875):onConfigurationChanged--17、把步骤5的android:configChanges=orientation改成android:configChanges=orientation|keyboardHidden,执行步骤3,就只打印onConfigChanged10-2302:46:43.762:INFO/chenys(5193):onConfigurationChanged--28、执行步骤410-2302:47:27.652:INFO/chenys(5193):onConfigurationChanged--210-2302:47:27.902:INFO/chenys(5193):onConfigurationChanged--1总结:1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2、设置Activity的android:configChanges=orientation时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次3、设置Activity的android:configChanges=orientation|keyboardHidden时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法四service以及service的生命周期两种用处:后台运行和跨进程访问两种模式:startService()/bindService()模式场合:调用者与服务之间没有关连,即使调用者退出了,服务仍然运行即用startService(),调用者与服务绑定在了一起,调用者一旦退出,服务也就终止则用bindService()生命周期:service的生命周期没有像activity里的onstop,主要经历创建、开始、销毁三个阶段,由于有两种模式的存在,其生命周期有两种体现方式如果打算采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStart()方法。采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。onBind()只有采用Context.bindService()方法启动服务时才会回调该方法。该方法在调用者与服务绑定时被调用,当调用者与服务已经绑定,多次调用Context.bindService()方法并不会导致该方法被多次调用。采用Context.bindService()方法启动服务时只能调用onUnbind()方法解除调用者与服务解除,服务结束时会调用onDestroy()方法。五.Android里的两种动画以及区别两种动画:补间动画TeenAnimation&&逐帧动画FrameAnimation区别:Teen:是定义一个开始和结束,中间的部分由程序运算得到Frame:其实和gif图片差不多,有帧的概念,是一个动画数组六.Aidl的全称以及在android中的作用全称:androidinterfacedefinitionlanguage作用:跨进程访问数据实现方式:其一般与service连用,在service里new一个其stub的实例,并实现其aidl里面的方法即可七.Android进程与进程,线程与线程之间,应用程序与应用程序之间如何通信进程与进程:利用aidl线程与线程:一般体现在ui主线程和子线程之间的通信,用handle机制即可应用程序与应用程序:Broastcast八.Android里解析xml的几种方式及区别三种方式:dom(DocumentObjectModel),sax(SimpleAPIforXML),pull优缺点:Dom优点:使用DOM操作XML的代码看起来是比较直观,并且在某些方面比基于SAX的实现更加简单Dom缺点:DOM需要将XML文件的所有内容以文档树方式存放在内存中,所以内存的消耗比较大Sax优点:解析速度快,ContentHandler对象可以是多个,内存消耗少Sax缺点:必须实现事件处理程序,不能修改文档,不能随机访问pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字九.Android里的数据存储方式1,SharePreferences2,利用io流文件存取3,网络存取(httpclient和httpServer)4,sqlite5,属性系统6,使用ContentProvider存储数据,其实这快个人认为不应该纳入存储方式,他只是定义了一种数据共享的标准接口。十.在我们实际的开发过程中需要注意的细节1.在进行界面布局的时候,一定要考虑到横竖屏的切换,尽量做到后期不用适配很多的机器。2.对于Activity的生命周期的控制,一定要严谨,考虑周全,什么时候查询,什么时候移除监听器,activity的三种生命周期的切换,保存界面信息,恢复界面信息,都要在代码编写之前尽量考虑周全,切不可跟着bug走。3.经常整理代码,类中用不到的属性,方法,一定要删除,不要想着以后可能用到,99%的情况是以后绝对用不到,这样做可以避免以后代码整理的混乱4.工作台的编码和工程的编码统一使用utf-8,同时将家里的电脑上的工作台与之同步,避免乱码。5.要做好工作记录,公司小,没有开发文档,这个没办法,自己尽量把自己的工作记录写好,例如某项功能的大体实现思路啊,遇到的难点啊,解决的办法啊等等,以后看的时候也不至于太费劲。6.方法名,属性名的定义切不可偷一时之懒,随便胡弄一个,多花点时间起个好名字,以后能省很多的事。7.xml进行页面布局的时候,尽量能够做到元素的重用,同时xml的名称很重要,凡是activity的
本文标题:android基本知识点总结
链接地址:https://www.777doc.com/doc-3134691 .html