- 博客(9)
- 收藏
- 关注
原创 日夜间及换肤(二)-原理分析
文章目录官方原理第三方库实现原理原理分析(SdkVersion = 29)我们要怎么做?具体实现原始地址:日夜间及换肤(二)-原理分析官方原理在官方的推荐方法中,我们发现了每次设置完Mode或者Theme都需要recreate()才会生效,这是为什么呢? /** * Cause this Activity to be recreated with a new instance. This results * in essentially the same flow as wh
2021-08-03 12:11:40 362
原创 日夜间及换肤(一)-常用技巧
文章目录总览UIMode实现设置Activity主题实现动态设置资源,控制view刷新对比原地址:日夜间及换肤(一)-常用技巧总览实现日夜间的方式有多种,基本可以整理如下:设置UiMode来设置对Activity设置主题来变换动态设置资源,控制view刷新UIMode实现在value的同级目录下新建一个values-night的目录,其中新建colors.xml文件,themes.xml文件等需要日夜间切换比如colors文件,需要将color所对应的名字保持一致,只进行颜色
2021-08-03 12:08:55 189
原创 2021年4-5月大厂面试题
京1:butterknife原理,R2文件?Handler异步消息,同步屏障?同步消息?looper.perpare()何时创建?message.obtain()?Vsync,垂直同步信号?UI滑动渲染优化?内存泄漏?leakcarray原理?oom的条件?开辟多个线程导致oom?bitmap的存储形式在系统中的存储?存储在哪?布局优化?LinearLayout draw几次?IPC机制,binder机制的理解?为什么使用线程池?(一个服务端对多个客户端)flutter渲染
2021-06-10 14:39:18 2781 1
原创 Android优化————布局优化
绘画原理Android的绘制主要是借助cpu和gpu结合刷新机制共同完成的cpu:负责执行measure、layout等方法,计算显示内容gpu:负责栅格化(将UI元素绘制在屏幕上)绘制过程使用skia库(2D),硬件本质是采用openGL库进行绘制16ms内渲染一次,否则会掉帧布局加载原理Android中的布局加载入口为setContentView(),分析如下: @Override public void setContentView(@LayoutRes int layo
2021-06-10 14:38:41 480 1
原创 Android优化————启动优化
app启动过程点击图标启动LauncherApp通知AMS进行启动,LauncherActivity onPauseAMS新建app进程,创建ActivityThread,创建ApplicationThread通过ApplicationThread向AMS注册Binder执行Application的onCreate方法新建进入的Activity执行Activity的onCreate方法,进行UI绘制等操作启动分类冷启动:从点击应用图标到UI界面完全显示且用户可操作的全部过程。Cl
2021-06-10 14:38:07 124 1
原创 Android优化————包体积优化
优化好处包体积减小,易于升级多市场渠道有体积限制,避免二次处理apk安装时间减小运行时内存占用小磁盘空间占用小,odex二进制文件小。APK组成及分析APK组成assets: 开发目录下assets目录lib:所需要的so库META-INF:签名文件okhttp3:okhttp网络相关org:org相关信息res:布局信息,对应开发目录res下AndroidManifest:四大组件配置classes.dex:代码压缩文件apk分析使用常规apktool方法
2021-06-10 14:37:26 365
原创 Android优化———内存优化
Java虚拟机Java内存模型虚拟机栈(线程私有):局部变量表、操作数栈、动态链接、方法出口等信息堆(线程共享):实例对象方法区(线程共享):类信息,常量,即时编译器编译后的代码程序计数器(线程私有):字节码行号指示器,记录当前线程执行到多少行本地方法栈(线程私有):和虚拟机栈类似,两者的区别就是虚拟机栈是为虚拟机执行java方法服务,本地方法栈为虚拟机执行native方法服务 。程序计数器线程计数器中如果正在执行java方法,计数器记录的是当前指令的地址, 如果是Nat
2021-06-10 14:36:42 130
原创 Fragment重写有参构造报错
Fragment重写有参构造,出现错误,需要添加@SuppressLint("ValidFragment")标注
2017-03-02 18:26:09 546
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人