最近我在公司做一些关于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定时服务          提醒电量


























          

     











更多相关文章

  1. Android(安卓)3.0以上UI主线程进行http通信
  2. 通过模拟学习Handler机制
  3. Android中进程与线程及如何在子线程中操作UI线程
  4. android动手写控件系列——老猪叫你写相机
  5. Android(安卓)的进程与线程
  6. Android(安卓)总结4种线程中操作UI界面的方法
  7. Android(安卓)系统Handler用法简介
  8. Android应用程序模型:应用程序,任务,进程,线程
  9. Android客户端与服务器之间的通信

随机推荐

  1. MySQL数据库定时备份的实现方法
  2. mysql数据库和oracle数据库之间互相导入
  3. 浅析使用JDBC操作MySQL需要添加Class.for
  4. 详解一条sql语句在mysql中是如何执行的
  5. 你还在 Select * 吗?
  6. MySQL数据库8——数据库中函数的应用详解
  7. mysql下载与安装过程详解
  8. MySQL使用LOAD_FILE()函数方法总结
  9. mysql 8.0.15 下载安装详细教程 新手必备
  10. Centos7下mysql 8.0.15 安装配置图文教程