Android知识点总结,学习过程梳理

    xiaoxiao2026-04-07  6

    最近我在公司做一些关于Android方面的培训,就想总结下Android常用到的一些技术点,可以给同事了解下Android的技术点体系,为学习和提升提供方向。简要总结,需要了解,请自行深入学习。       Android系统的文件结构          Android系统的组织结构     简单的四个分层,各自包含哪些内容       Activity               Activity生命周期,理解生命周期的重要方法和运行逻辑           Activity横竖屏导致的生命周期的重启和数据保存策略,android:configChanges设置“orientation”“orientation |keyboardHidden”对生命周期重启的影响           了解Activity的配置信息,Activity的打开方式(显示,隐式)       Service           作用:后台服务和跨进程访问           service 在配置文件中的写法和配置信息,独立进程和依附主进程           如何打开service ,service 的生命周期           startService和bindService对service 生命周期的影响和区别,多次start和多次bind同一个service对他们生命周期的影响           跨进程访问 AIDL的写法    serviceConnection IBinder回调对象       broadcast           几种不同的广播类型,普通、系统、有序、粘性、非粘性、应用内             无序广播     无法中止广播传播           有序广播     abortBroadcast     中止广播传播          添加内容setResultExtras(Bundle);           broadcastReceiver     动态订阅、静态订阅     动态订阅必须用隐形Intent发送广播(显式、隐形Intent的区别 )       contentProvider           使用方式          监听数据变化 contentObserver  onchange()           "content://com.example.testprovider/single"       动画           Tween Animation补间动画     Frame Animation帧动画       Dialog           AlertDialog     AlertDialog.Builder     builder.create().show()     7种常用的           自定义Dialog       Notify 通知                一般不会自己实例化     Android 3.0之前和之后写法的区别 Notification.Builder/NotificationCompat.Builder           getSystemService(...) ->notificationManager.notify()           Notification 小图、标题、文本内容           PendingIntent、Intent的区别     即将发生的意图     马上发生的意图           大视图(Big View) android4.1+     notification.setStyle(....); 通知栏展示进度          builder.setProgress(....) 自定义通知     RemoteViews          builder.setcontent(..)     通过控件ID设置内容     remoteViews.setImageViewIcon(viewid,icon)       Fragment 的使用       自定义View           自定义View 的属性,10种基础属性 获取自定义属性的值 重写onMesure     自己测量 重写onDraw          postInvalidate();->重绘onDraw() 使用时引入命名空间       跨进程通信、应用程序间通信           AIDL     广播     ContentProvider     Activity       线程间通信     开启不同线程方式的优缺点           Handler的用法    Handler.post(Runnable)      注意:这里没有起新线程          Handler消息处理的机制:Looper消息循环、Message消息、Thread、MessageQueue消息队列互相的关系和作用           Activity.runOnUiThread(Runnable)      View.post(Runnable) .postDelay(Runnable,long)                AsyncTask           HandlerThread     起新线程,注意:需要有主线程的looper的handler才能操作UI线程           Thread          ExecutorService线程池的用法       XML解析的几种方式     JSON解析     解析库       数据存储           sharePreferences的用法           IO流文件     序列化对象的写入文件方式           网络存储           SQLite           属性系统     Sytem Property(C++)           contentProvider       Android中常见的设计模式           工程模式           单例     例如:日历     CalendarDatabaseHelper           观察者           代理模式           提供者模式           抽象工厂 MVC     例如:ListView->View , getData()->model , Adapter->control       OOM     ANR     避免出现这些问题       代码混淆     注意第三方包尽量避免混淆       View和ViewGroup触控的事件           view      分发触控事件dispatchTouchEvent          触发触控事件onTouchEvent           viewgroup          onIterceptTouchEvent拦截触控事件           参考经典的三层结构图 LinearLayout1=>LinearLayout2=>view       内存优化的思路           调试工具,TraceView      自动化测试工具:monkey         monkey runner            可以看出各个函数的调用时间,调用次数,平均调用时间,时间占用百分比       插件化程序          组件化          动态加载           Dex的最大方法数     Integer的最大数=》65535           java : classLoader          Android : DexClassLoader/PathClassLoader      第三方库           Okhttp           Fresco     原理     bitmap 在3.0前后的存储机制的问题       内存泄漏               查询数据库没有关闭cursor           构造Adapter,没有使用ContentView           Bitmap没有被释放           对象被生命周期长的对象引用       内存溢出           图片过大 listview写法错误 横竖屏切换,写法问题           方法:Android自定义堆大小,优化Dalvik的内存,软引用       强引用     软引用     弱引用     虚引用     的区别       耗电问题           大数据传输     =>     GZIP下载数据           网络切换    =>网络连接判断           解析大量文本数据     =>高效率的数据格式解析方式           回收JAVA对象     少用GPS     少用浮点数运算     获取屏幕数据,使用缓存     避免service不停使用sleep,请求          使用AlarmManager定时服务          提醒电量                             
    转载请注明原文地址: https://ju.6miu.com/read-1308589.html
    最新回复(0)