- 博客(88)
- 收藏
- 关注

原创 linux ubuntu Unable to locate a development device; please run 'flutter doctor' for information
0. 序言配置环境这种小事,看似小,有时候还是很浪费时间的,我这里是Ubuntu操作系统,Mac Os和Windows相似,参考下也能很快配置好。1. 问题首先下载好了Flutter的SDK,然后在AndroidStudio上安装好了Flutter和Dart的插件,JDK也配置好了,重启,创建Flutter项目,运行报以下错误:Unable to locate a development...
2019-03-15 17:21:05
3761

原创 解决 Unable to resolve dependency for ':app@debug/compileClasspath 问题
0. 序言可能你比较快就解决了标题上的问题,但是对于我来说搞了两个小时,才解决。希望我这篇文章能让你更快的解决这个问题,把工作重点放在开发上。1. 问题所在当我创建一个默认项目后,我想导入以下代码:implementation 'com.squareup.okhttp3:okhttp:3.13.1'但是我发现报了标题中的错误,而我打开VPN(并非AndroidStudio的代理),却...
2019-03-13 14:07:20
14728
2

原创 LruCache-实现内存缓存的优秀算法
1. 基本概念LRU是计算机科学经常使用的一种近期最少使用算法。2. 核心思想当缓存满时,会优先淘汰那些近期最少使用的缓存对象。3. 具体原理LruCache是一个泛型类,它内部采用的是一个LinkedHashMap以强引用的方式存储外界的缓存对象,其提供了get和put方法来完成缓存的获取和添加操作,当缓存满时,LruCache会移除较早使用的缓存对...
2018-03-30 10:26:04
789

原创 Bitmap-让图片加载更高效
0. 效果图1. 基本概念Bitmap(位图)是Android系统中图像处理最重要的类之一。Bitmap可以获取到图片的信息:高和宽的像素值以及总的像素值、alpha像素值等。Bitmap获取到图片信息后,可以对其进行裁剪、缩放等操作。Bitmap可以通过一个Bitmap创建新的Bitmap。总之:Bitmap为我们程序员提供了对图像文件的操作支持。(就像File类为我们提供...
2018-03-04 14:53:17
526

原创 Genymotion-Android开发效率提高必备工具
0. 序言模拟器浪费时间?真机不浪费时间?实则优秀的模拟器不但不浪费时间,反而节省时间;有些真机还真的浪费时间,不举例实在太多类型的。真机的不便之处举例: oppo R11 debug模式无法正常编译安装,每次安装需要输入oppo 密码;vivo每次编译运行还必须页面点击安装才能正常编译运行,等等。最好的办法就是用Gnenymotion模拟器开发,用真机后期做适配开发。1. 下...
2018-02-22 15:54:00
430

原创 Freeline让AndroidStudio编译飞起来
0. 序言Android项目随着需求的增多,整个体积越来越大,AndroidStudio编译越来越慢!少则几分钟,多则十几分钟!为了提高效率,早下班,Freeline绝对是Android开发者的必备利器!今天周末,大家周末愉快!1. Freeline是什么Freeline 是 Android 平台上的秒级编译方案,Instant Run 的替代品!2. Freeline
2018-02-04 10:42:23
504

原创 Java基础之反射
0. 序言这里只讲解关于反射的基础知识,以后会补充更多的扩展知识,毕竟是基础系列。1. 类的加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载 就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。连接 验证 是否有正确的内部结构,并和其他类协调一
2018-01-28 17:27:16
263

原创 自定义控件之带进度的横向和圆形进度条
0. 效果展示1. 为什么要自定义控件特定的显示风格(适用于进度条)处理特有的用户交互优化布局封装等2. 如何自定义控件自定义属性的声明和获取测量onMeasure布局onLayout (ViewGroup)绘制onDrawonTouchEvent (处理交互)onInterceptTouchEvent(ViewGroup 拦截事件)状态的恢复与保存
2018-01-21 23:06:59
651

原创 VideoView实现安卓视频播放
1. VideoView简介Android实现视频播放主要是使用VideoView类来实现的。VideoView背后是使用MediaPlayer来对视频文件进行控制的。只支持mp4、avi、3gp格式的视频,支持格式单一。2. VideoView常用方法:setVideoPath:设置要播放的视频文件的位置start:开始或继续播放视频pause:暂停播放视频res
2018-01-07 17:26:07
2243

原创 PermissionsDispatcher
本篇文章介绍了PermissionsDispatcher框架的使用方法。它是我用过代码解耦最好的关于6.0运行时权限的封装。
2017-12-02 16:31:34
305

原创 Scroller
这篇博客详细介绍了Scrollder的实现、解析和原理,阅读后会让你对Scroller乃至整个View体系有一个更好的了解和认知!
2017-11-18 22:49:58
312

原创 Android帧、补间、属性动画
这篇博客介绍了Android中动画的帧动画、补间动画、属性动画。至于VectorDrawable(Android5.0)后期会单独更新博客讲解。
2017-11-16 17:54:40
338

原创 RecyclerView常用功能解析
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请注明出处:http://mp.blog.youkuaiyun.com/mdeditor/index/783971741. RecyclerView常用功能普通的上下滑动和左右滑动Grid效果上下滑动和左右滑动瀑布流的上下滑动和左右滑动添加分割线去除最后一个item的分割线添加点击事件增加和删除item添加动画
2017-10-30 20:47:53
1532

原创 This Activity already has an action bar supplied by the window decor
This Activity already has an action bar supplied by the window decor的问题所在以及解决方法。
2017-10-08 08:56:33
263

原创 Service
这篇文章讲解了关于普通服务、前台服务、后台服务、服务的生命周期以及关于服务完整的栗子,看完后能对服务有一个完整的认识,希望读完能让你有所收获。
2017-09-30 00:05:08
328

原创 FragmentManager is already executing transactions
FragmentManager is already executing transactions 的问题所在以及出现场景和解决办法
2017-09-24 10:45:55
1060
原创 Android InstalldNativeService::getAppSize源码分析
Profiles 文件:如 /data/misc/profiles/cur/[userId]/[package],计入 stats.dataSize。Dalvik 缓存:路径为 /data/dalvik-cache,根据 GID 归属累加到 stats.codeSize。代码路径:遍历 codePaths 计算 stats.codeSize(如 APK 文件)。启用条件:设备支持 Quota 且 appId 有效(FLAG_USE_QUOTA)。2. 路径参数校验。
2025-04-10 20:38:33
605
原创 Android 存储路径
Dalvik 缓存:/data/dalvik-cache(优化后的 DEX 文件,影响 stats.codeSize)。当前配置:/data/misc/profiles/cur/0/com.example.test。参考配置:/data/misc/profiles/ref/com.example.test。
2025-04-10 20:26:04
371
原创 Android 先调用 removeMessages 再调用 sendEmptyMessage 的设计目的
这种模式的核心是 保证消息处理的唯一性和时效性,适用于以下场景:高频事件(如滚动监听、传感器数据更新)。延迟任务需要中断或重置(如倒计时、动画)。资源敏感操作(如网络请求、文件读写)。通过合理使用 removeMessages,可以显著提升应用稳定性和性能。
2025-04-10 15:16:57
197
原创 Android CopyOnWriteArrayList 比 ArrayList 优势在哪里,其实现原理是什么
CopyOnWriteArrayList 通过牺牲写操作性能和内存开销,换取了读操作的高效与线程安全,是读多写少并发场景的理想选择。其核心原理为写时复制和读写分离,需根据实际业务权衡使用。
2025-04-10 10:50:02
606
原创 Android 使用kill -9(SIGKILL信号)强制终止Native进程时,是否会生成tombstone文件
使用kill -9终止Native进程是一种“强制且无痕”的操作,不会生成tombstone文件。
2025-04-09 15:23:12
229
原创 Android MediaStore访问的外部存储公共空间都不需要申请权限,这些目录具体指的是哪些
通过 MediaStore 访问以下目录时,应用对自己创建的文件无需权限:图片:DCIM/、Pictures/视频:DCIM/、Movies/音频:Music/、Alarms/ 等下载文件:Download/(仅限媒体文件)。
2025-04-09 14:53:15
349
原创 解决Ubuntu系统鼠标不流畅的问题
电脑是联想的台式组装机,安装ubuntu系统(不管是16、18、20、22)后,鼠标都不流畅。最近几天想解决这个问题,于是怀疑到了显卡驱动上。怀疑之前一直用的是集成显卡,而不是独立显卡,毕竟2060的显卡也不至于鼠标不流畅。于是百度了下,想换个显卡驱动试试。于是将默认驱动中最后一个开源的驱动换成现在选中的驱动,就顺利解决了这个问题。希望可以帮助到和我一样遇到这个问题的同学。
2025-04-07 23:13:25
326
原创 android lmkd.rc 介绍
修改这些属性后,根据系统是否完成启动(sys.boot_completed)决定立即重载或延迟到启动完成。通过 --reinit 重新加载配置,例如调整内存阈值或调试参数。每个属性详细的说明,后续会补充在这里。
2025-03-14 15:49:54
154
原创 android storage_state
storage_state的参数分别是uuid、之前的状态、现在的状态、可用磁盘空间大小,总的磁盘空间大小。
2025-03-11 11:59:22
306
原创 Android art monitor_android.cc 源码分析
锁等待时间较长(9865ms),这可能表明存在性能问题,尤其是在主线程(敏感线程)中。当前线程和锁持有者处于同一个文件和方法中。
2025-02-20 16:12:13
393
原创 Pixel3XL 编译源码刷机教程
这个时候参考这篇文章解决 https://blog.youkuaiyun.com/liyuan_669/article/details/121910580。Pixel3XL可以刷的最新的Android版本为android-12.0.0_r34,驱动的版本是SP1A.210812.016.C2。在二手平台买一台已经unlock过后的Pixel手机,这个时候oem锁已经是打开状态。设备刷机完成后,你会发现找不到设备,adb devices报以下错误。
2025-02-08 10:03:36
385
原创 Android soong/ui/build/finder.go FindSources源码分析
【代码】Android soong/ui/build/finder.go FindSources源码分析。
2024-11-06 11:36:07
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人