美文网首页
Android技术栈和经验

Android技术栈和经验

作者: 橘子HW | 来源:发表于2019-09-29 16:26 被阅读0次

    1.开发工具

    Android Studio

    Gradle 构建

    1.Gradle 版本配置和版本升级,gradle 采用wrapper方式。可以做到每个项目独自使用gradle版本。gradle/wrapper/gradle-wrapper.properties并修改distributionUrl=https://services.gradle.org/distributions/gradle-3.0-all.zip到你想升级的版本。

    2.构建模块化项目配置org.gradle.parallel=true

    3.配置签名信息

    4.设置第三方maven 地址

    5.Gradle 拆分及引用 apply from:"../resource/config.gradle"

    6.全局变量定义及引用

    7.AndroidManifest占位符,BuildConfig以及资源配置

    8.aar本地库依赖

    Android sdk 编译版本,support,主题

    1.compileSdkVersion:编译版本,控制可以使用的 API 。不会被包含到 APK 中,minSdkVersion :最低兼容版本,targetSdkVersion:应用运行时使用的版本,即使使用了高版本API也不会生效。

    2.主题Hoho Theme:4.0之前。在4.0之后Android推出了Material Design的概念

    3.v4 v7 v13

    1)support-v4 : 该系列包用在API Level 4(即Android 1.6)或者更高版本以上。在开发中,默认都会使用到这个包。

    2)support-v7 : 该系列包是为了考虑在API level 7(Android 2.1)及以上使用高版本效果而设计的,v7包含了v4的所有效果(v7中包含v4包的,即v7依赖于v4),v7当中支持了很多新的效果,最新的版本中还支持了Material Design的多种新的布局和空间。比如说:RecyclerView、TabLayout、ToolBar、CardView等等新的包。

    3)support-v13 : 该兼容包系列主要是为了兼容API level 13(Android 3.2)以上的,是为了针对于平板兼容开发的,由于平板屏幕较大,因此该系列增强的对Fragment效果的支持,使得Fragment能够在平板的各个版中兼容(一般手机开发者不用该包)。

    4)v14(兼容4.0及以上)

    5)v17(兼容4.2及以上)主要是为了支持电视设备,并为电视设备提供了一系列的组件。

    2.项目架构

    App应用

    扩展功能模块

    功能库Library Common Library 工具库

    3.View 的绘制

    View的绘制流程&Activity的生命周期。在ActivityThread中,通过attache初始化window,将decorview添加进去。创建viewRootImpl对象,view 的绘制流程首先开始于ViewRootImpl的performTraversals方法。经过三大过程。Measure、layout、draw。而在Activity时通过onCreate()方法中调用setContentView();

    setContentView 的源码分析和SnackBar 分析

    View和ViewGroup的绘制原理源码分析。

    4.事件分发

    涉及分发及核心

    么整个事件流向应该是从Activity---->ViewGroup--->View 从上往下调用dispatchTouchEvent方法,再由View--->ViewGroup--->Activity从下往上调用onTouchEvent方法。

    5.动画框架

    逐帧动画

    补间动画

    属性动画

    (1)ValueAnimator:包含了属性动画的核心功能,动画时间,开始和结束属性值计算方法等,这个类也是属性动画的基类。

    (2)ObjectAnimator:继承自ValueAnimator,其实如果要改变一个事物的某个属性变化会比较经常用到这个方法。

    (3)AnimationSet:用于组合多个动画的,可以设置要组合动画的时序关系。

    (4)TypeEvalutors:都是翻译成估值器,其实就是计算下一个运动到的值的类(根据动画的开始和结束还有TimeInterpolation计算出当前时间的属性值)

    (5)TimeInterplator:这个翻译都是插值器,他是一个描述运动变化的方式,如匀速运动,加速运动或者先加速后减速等,他有很多子类,待会会介绍。

    (6)ViewPropertyAnimator:这个类其实就是对View做属性动画的一个简略版,有些情况用到这个会简单很多。

    6.Handler机制

    1)Handler,MessageQueue,与Looper三者关系分析

    2)HandlerThread源码分析

    3)IntentService源码分析

    4)Handler常见应用场景和常见问题分析

    7.Binder机制

    Binder是一种跨进程的通信方式;

    从Android Framework层来说,Binder是ServiceManager连接各种Manager和相应ManagerService的桥梁;

    8.流行框架源码分析

    1)EventBus3.0源码解析

    2)AsynTask源码分析

    3)编译期注解的使用例子分析

    4)Butterknife源码分析(一)

    5)Butterknife源码分析(二)

    6)多进程的sharedprefrence解决方案DPreference

    7)Volley源码解析

    8)OkHttp源码分析

    9)Builder建造者设计模式

    10)Retrofit2源码解析

    11)Observer观察者设计模式

    12)责任链设计模式

    13)Strategy策略模式

    14)Decorator装饰模式

    15)GreenDao3.0数据库

    9.性能优化

    1)冷启动优化

      1.1.APP启动分析工具(TraceView,Systrace)

      1.2.布局优化(扁平化,Merge的使用,ViewStub的使用)

      1.3.APP启动速度优化实例解析

      1.4.各种布局的性能对比(LinerLayout,RelativeLayout)

    2)内存优化

      2.1.LeakCanary原理分析

      2.2.Android DiskLruCache 源码解析 硬盘缓存的绝佳方案[转]

      2.3.LruCache源码分析

      2.4.内存泄漏的一些坑

      2.5.MAT内存泄漏分析(一)

      2.6.MAT内存泄漏分析(二)

    3)网络优化

    4)图片压缩性能优化

    5)数据传输性能优化

    6)减小APK体积

    7)渲染优化

      7.1.UI卡顿原理分析

      7.2.UI卡顿检测分析

      7.3.BlockCanary原理分析

      7.4.卡顿优化实例解析

    8)电量优化

      8.1.APP耗电分析方法与工具(第三方,Google官方Battery Historian)

      8.2.Android Doze源码分析

      8.3.AlarmManager研究 [转]

      8.4.在Android Lollipop中使用JobScheduler

    9)Android ANR在线监控原理

    10)AndroidGodEye解析之帧率(fps)

    11)AndroidGodEye解析之流畅度(sm)

    10.网络编程

    1.TCP问题分析

    2.OkHttp源码分析

    3.网络传输数据加密策略(对称加密AES,DES,非对称加密RSA)

    4.二进制协议(mqtt协议),协议编解码(tlv编解码)

    5.Java Socket编程(IO,NIO)

    6.Java多线程编程(队列,同步锁,线程池)

    11.FrameWork层源码的分析

    1)应用程序内Activity的启动流程

    2)startService的流程分析

    3 ) 注册广播接收器的源码分析

    4)广播发送过程源码解析

    5)广播处理过程源码解析

    6)AssetManager加载资源过程

    7)ClassLoader及dex加载过程

    8)插件化框架VirtualApk之初始化

    9)插件化框架VirtualApk之插件加载

    10)插件化框架VirtualApk之Activity启动

    11)插件化框架VirtualApk之Service管理

    12)热修复框架AndFix完全解析

    13)InstantRun源码分析

    相关文章

      网友评论

          本文标题:Android技术栈和经验

          本文链接:https://www.haomeiwen.com/subject/xdafpctx.html