随笔分类 - Android interview
摘要:相关链接: java 进制转换 java 高低位字节,以及转换。 JVM 和Dalvik虚拟机的区别 JVM:.java -> javac -> .class -> jar -> .jar架构: 堆和栈的架构. DVM:.java -> javac -> .class -> dx.bat -> .d
阅读全文
摘要:线程阀:一种线程与线程之间相互制约和交互的机制。 Queue(队列):用于保存一组元素,存取时,遵循先进先出原则。 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。 进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为
阅读全文
摘要:布局的性能优化之所以重要,因为以下两个方面: 布局的性能优化之所以重要,因为以下两个方面: (1)布局文件是一个xml文件,inflate布局文件其实就是解析xml,根据标签信息创建相应的布局对象并做关联。xml中的标签和属性设置越多,节点树的深度越深,在解析时要执行的判断逻辑、函数的嵌套和递归就越
阅读全文
摘要:内存优化: App性能测试和分析工具: 一、Android内存分配回收机制 参考Android 操作系统的内存回收机制,这里简单做下总结: 从宏观角度上来看Android系统可以分为三个层次 Application Framework, Dalvik 虚拟机 Linux内核。 这三个层次都有各自内存
阅读全文
摘要:假设有一个单例的ListenerManager, 可以add / remove Listener, 有一个Activity, 实现了该listener, 且这个Activity中持有大对象BigObject, BigObject中包含一个大的字符串数组和一个Bitmap List. 代码片段如下:
阅读全文
摘要:代码混淆 一般情况下,Android 的 gradle 中都会默认写着: 默认 Proguard 文件:官方自带的混淆规则文件路径:proguard-android.txt。 这个默认文件中帮我们声明了许多混淆规则内容,包括:keep 所有继承自 View 的类,keep 所有继承自 Activit
阅读全文
摘要:前言: 当 mvp + dagger2 + rxjava 三者遇上,架构更加清晰,代码更加灵活,巧妙结合。 依赖注入:是为了解耦,达到高内聚低耦合的目的,保证代码的健壮性、灵活性和可维护性。 Computer类持有了对Cpu实例的引用,称之为Computer类对Cpu类有一个依赖。 依赖注入则是指通
阅读全文
摘要:出现的原因: Android 5.0 之前版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)之前的平台版本使用 Dalvik 运行时来执行应用代码。默认情况下,Dalvik 限制应用的每个 APK 只能使用单个 classes.dex 字节码文件。要想绕过这一限制
阅读全文
摘要:(1)TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议, 客户端和服务器端请求和应答的标准。 也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程
阅读全文
摘要:GitHut 地址: https://github.com/ReactiveX/RxAndroid build.gradle: (1)RxJava简介: RxJava 是一个在Java虚拟机上实现的响应式扩展库:提供了基于observable序列实现的异步调用及基于事件编程。 RxJava最核心的两
阅读全文
摘要:参考: Android 框架炼成 教你如何写组件间通信框架EventBus Android EventBus源码解析 带你深入理解EventBus Android EventBus实战 没听过你就out了 快速Android开发系列通信篇之EventBus EventBus是一个publish/su
阅读全文
摘要:参考: 一款APP从设计稿到切图过程全方位揭秘(ios篇) 一款APP,从设计稿到切图(Android篇) 参考: Android 屏幕适配方案 Android 百分比布局库(percent-support-lib) 解析与扩展 Android 增强版百分比布局库 为了适配而扩展 Android A
阅读全文
摘要:1. 插件化的原理 是 Java ClassLoader 的原理:Java ClassLoader基础 常用的其他解决方法还包括:Google Multidex,用 H5 代替部分逻辑,删无用代码,买付费版的 Proguard 当插件化作用包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开
阅读全文
摘要:1. Shape 属性: (1) solid ( 填充 ) 参数:android:color ( 填充的颜色 ) (2) gradient ( 渐变 ) 参数:android:startColor ( 开始颜色 ) 、android:endColor ( 结束颜色 )、android:angle (
阅读全文
摘要:参考: 各大热补丁方案分析和比较 Android App 线上热修复方案 1. Xposed Github地址:https://github.com/rovo89/Xposed 项目描述:Xposed框架使用起来很确实很好用。可是就是有一个巨大的缺点,就是需要Root权限。 Xposed源码剖析——
阅读全文

浙公网安备 33010602011771号