Android
文章平均质量分 79
暮冬一十四
这个作者很懒,什么都没留下…
展开
-
AndroidStudio升级到4.0之后,编译时出现Warning: Default Activity not found解决办法
###方法1:比较暴力,不推荐###方法2:点击androidmanifest中左下角mergend manifest 查看报错信息:###可以看到我的项目是label冲突,进行修改:###可以看到修改后,报错消失,APP可以运行了...原创 2020-07-28 15:21:25 · 381 阅读 · 0 评论 -
两个RecyclerView联动滑动,StackOverflowError
两个RecyclerView联动滑动,StackOverflowError遇到的坑:数据2000多条,双Recycleview联动滑动,左右各一个,滑动左边的右边也动,滑动右边左边也动;先滑动左边的Recycleview-rcvLeft,两个列表滑动过程中(重点),去滑动右边的Recycleview-rcvRight这时就会报错,堆内存溢出8M (StackOverflowError),同...原创 2020-03-18 10:16:28 · 845 阅读 · 0 评论 -
Android 虚拟机、对象、变量的内存分配
什么是虚拟机?虚拟机就是将平台无关的.class文件的字节码翻译成平台相关的机器码,来实现跨平台;jvm:Java 文件->编译器>class字节码->JVM->机器码android:Java 文件->编译器>class字节码->dex工具->dex->aapt工具->apkjava的jvm虚拟机与Android的虚拟机有什么区别?java执行的是.class文件;Android虚拟机执行的是.dex文件; class文件存在原创 2022-02-09 15:13:19 · 386 阅读 · 0 评论 -
Android Glide
Glide关键类RequestManager: 具有生命周期,管理RequestTracker中的两个队列 RequestTracker:里面有两个队列,一个运行时队列和一个等待队列,当into()时放入请求;Glide生命周期来源在Gilde.with(this)时,先创建了一个无UI的framgmet; 再创建了一个RequestManager,将framgmet的生命周期Lifecycle传了进去 RequestManager就有了生命周期; 再将RequestManager设置原创 2022-02-05 22:36:24 · 1529 阅读 · 0 评论 -
Android ClassLoader机制与热修复
方法执行:调用对象.method() 从对象.method()获取方法的指令集地址 执行引擎根据指令集地址从class中拿到方法指令 将方法指令的栈帧放入栈中 进行执行栈帧得到结果阿里sophix原理:c++替换方法区的class中有异常的arm指令地址;优势:不需要重启app;劣势:兼容性差,需要各个版本对应的头文件art_mothod.h;一个java方法在ART虚拟机中对应一个ArtMethod结构体;ArtMethod中有一个指针void * entry_point原创 2022-02-04 18:03:00 · 374 阅读 · 0 评论 -
Android IO、序列化、dex加密
IO原理:实际是调用系统内核的函数库,进行数据同步后,由内核将数据写入磁盘;页4K数据为一页,一页数据是IO操作的基本单位;在空间局部性原理下,为了优化,如果数据量较大的情况下,可能会出现预占位4~16K的情况;实际还没写数据,只是提前先多开辟空间,减少了多次开辟空间的操作;基础IOFileInputSteam inputSteam/FileOutSteam outSteam:并没有实现inputSteam.flush(), 实际每次调用inputSteam.write()都原创 2022-01-31 20:47:12 · 1354 阅读 · 0 评论 -
Android 注解、反射、Apt原理
注解、反射、代理模式:Java:注解和反射 - opendragonhuang - 博客园创建Retrofit使用 建造者模式Retrofit其实是将OkHttp进行了封装;解决了Okhttp请求完数据不能自动切回主线程的问题;在build时,创建了一个主线程Handler(Looper.getMainLooper()),并存了起来;在请求完数据后,使用handler.post()切回主线程;OkHttp请求时,使用责任链模式;同时支持最大5个不同域名的64个..原创 2022-01-29 14:49:51 · 1806 阅读 · 0 评论 -
Android RecycleView缓存
RecycleView有几级缓存?4级;RecycleView实现了3个,其中一个提供给程序员实现;第一级:ArrayList<ViewHolder> mAttchedScrap; 第二级:ArrayList<ViewHolder>mCachedViews; 第三级:ViewCacheExtension mViewCacheExtension;是个抽象类,没有被实现,提供给用户用的,让用户去实现的; 第四级:RecycleViewPool mRecyclePool...原创 2022-01-28 21:13:36 · 634 阅读 · 0 评论 -
Android UI测量、布局、绘制
Android WMS及绘制流程随记_暮冬一十四的博客-CSDN博客测量测量模式一个int占4个字节,一个字节8位,也就是一个int类型的二进制为32位:MeasureSpec.UNSPECIFIED:任意大小,基本上没用过;值为0x0<<30(16进制的0左移30位):000000000000 0000000000 0000000000; MeasureSpec.EXACTLY:精确测量,如固定大小或match_parent;值为0x1<<30(16...原创 2022-01-28 00:33:38 · 1366 阅读 · 0 评论 -
Android 事件分发机制
硬件设备事件信号采集传输到上层:Android Framework源码-IMS随记_暮冬一十四的博客-CSDN博客WMS中有个WindowState集合,WMS最终会将事件封装为MotionEvent对象通过调用->Activity.dispatchTouchEvent(MotionEvent ev)->PhoneWindow->ViewRootImpl->ViewGroup->View进行事件分发;事件分发角色:Activity、ViewGrou.原创 2022-01-26 21:37:30 · 834 阅读 · 0 评论 -
Android 锁、线程
1、线程生命周期:正常执行一次就结束的:new->runnable->runing->treminer(怎么拼忘了,结束);执行多次结束的:new->runnable->runing->调用wait()变成wating->调用notify()变成runnable->runing->treminer锁类型,保存在对象的对象头中:无锁 偏向锁 轻量锁 : 重量锁 :monitor介入,必定有一个线程会获得锁2、单例:这个懒汉式原创 2022-01-16 20:34:44 · 1674 阅读 · 0 评论 -
Android 多个请求时LoadingDialog反复显示消失问题的封装思考
场景在开发中一个页面会有多个请求,同时发送,返回时间有快有慢,loading在此时可能会在第一个返回接口时消失,然而其他接口还没返回数据。此时这种jie'k原创 2021-06-01 14:58:44 · 2137 阅读 · 5 评论 -
Android 不规则图形点击区域判断
本文介绍一种利用 三角函数角度 及点击坐标与图片中心点坐标(或某一点)的连线长短 判断点击区域如要判断这张图片的点击区域:1.首先在初始化图片iv_bg后,测量iv_bg的坐标,得到图片的中心坐标:ViewTreeObserver vto2 = iv_bg.getViewTreeObserver();vto2.addOnGlobalLayoutListener(new OnGl...原创 2016-03-28 15:03:12 · 3884 阅读 · 0 评论