- 博客(44)
- 资源 (3)
- 收藏
- 关注
原创 从代码设计看 Glide 之生命周期(中)
上一期我们借用 Android 的 Lifecycle 库实现了生命周期的管理。但是其中有一个可能隐藏的坑不知道大家有没有发现?more。
2023-09-07 08:15:00
168
原创 从代码设计看 Glide 之生命周期(上)
整体是不是看起来清爽多了,各个类的职责分明,每个类也不会太过复杂导致难以理解。我们来和上期的类图合并一起看看,有忘记的同学也可以借此回顾一下。
2023-08-31 23:21:18
245
原创 【公告】新开公众号
掘金:https://juejin.cn/user/2518350422615987。个人博客:https://0xforee.top/。逐步迁移到掘金和个人博客。
2023-08-19 13:07:02
2625
原创 从代码设计看 Glide 之核心功能
接上文。这篇我们主要关注于 Glide 的核心能力,来看一看构建出 Glide 核心的能力的模块或者类是哪些。Glide: 是我们作为图片加载库的总入口,触发图片加载和其他一些功能。同时单例实现。使用设计模式,将内部复杂的使用逻辑封装为简易的使用接口,降低使用者的接入成本。:请求管理者,RequestManager 根据 load 的具体内容创建 RequestBuilder,来让用户进一步定制 Request 的细节。
2023-08-11 22:48:56
172
原创 从代码设计看 Glide 之写在开头
Glide 是一个比较老的库了。第一行代码提交于 2012 年,至今已有 10 多个年头了。称之为一个老库不为过。那既然是老库,还有研究的必要吗?尤其是在最近几年 Jetpack,Flutter 蓬勃发展的时候,我们重新去解析一个老库还有必要吗?当然是有必要的,而且是非常有必要的。虽然 Glide 出来的时间很久了,但却鲜有人去深入解析 Glide 的代码设计和编程思想。
2023-08-08 23:42:37
106
原创 一文帮你快速理解协程使用模型
协程为什么不能像普通代码那样使用,而是一定要使用Scope?协程和线程究竟是什么关系?suspend 真的挂起了吗?
2023-08-02 00:12:44
231
原创 如何通过 Mapping 文件反混淆
本文已同步到 如何通过 Mapping 文件反混淆 ,提供更好的阅读体验写在前边做过 Android 开发的应该或多或少都知道“混淆”这个技术点,它不仅可以帮助我们增加三方逆向的难度,还可以有效减少包体积,瘦身 APK其实这些能力都来自于 Proguard 这个程序,Proguard 能利用字典文件,在编译时将我们的类名,方法名,字段名都替换掉,最后生成一份非常反人类的编译产物。Proguard 在每次运行时都会创建一个 mapping.txt 文件,其中列出了经过混淆处理的类、方法和字段名称与原始
2020-06-16 23:30:04
5926
6
原创 ListView 5种滑动模式解析全在这里了
这篇文章已同步到 ListView 5种滑动模式解析全在这里了,提供更好的阅读体验前段时间在使用 ListView 的过程中,需要对一个子 Item 优化横向 Bannar 的滑动体验,于是借此机会,深入了解了一下 ListView 滑动的一些知识,来探究一下,一个 View 滑动,究竟需要做哪些事情。滑动模式基本介绍ListView 的滑动模式使用变量 mTouchMode 来表示,分为...
2019-08-12 00:26:42
2377
1
原创 MeasureSpec 与 LayoutParams 不得不说的二三事
已开通新的博客,后续文字都会发到新博客https://0xfree.top/2019/07/01/android-measurespec-layoutparams/MesureSpec,测量规格前言MeasureSpec 这个话题往大了说,关系到整个 Android 测量体系的设定,往小了说,只是一个封装了位运算的内部静态类而已。当然我们不会仅仅满足于后者,所以我们就借 Measu...
2019-07-02 23:57:27
720
1
原创 invalidate三部曲之历经Choreographer
已开通新的博客,后续文字都会发到新博客http://www.0xforee.topChoreographyer三部曲invalidate三部曲之始于invalidateinvalidate三部曲之历经ChoreographerChoreographer,编舞者。void scheduleTraversals() { if (!mTraversalScheduled) { ...
2018-12-18 00:49:08
314
原创 invalidate三部曲之始于invalidate
已开通新的博客,后续文字都会发到新博客https://www.0xforee.topinvalidate - to make invalidinvalidate() 方法可谓是自定义View的常客,不管是自己覆写onDraw()方法还是触发动画效果,以及其他种种需要更新界面元素的情况,都只需要调用一句invalidate(),剩下的交给系统即可,可谓省时又省力如果说我们在一些简单的Vi...
2018-12-02 01:04:26
1112
原创 关于PRODUCT_PROPERTY_OVERRIDES属性的解析
已开通新的博客,后续文字都会发到新博客https://www.0xforee.top
2018-12-01 13:22:21
12716
1
原创 PRODUCT_COPY_FILES语法解析
已开通新的博客,后续文字都会发到新博客http://www.0xfree.topAndroid 编译系统解析系列文档解析lunch的执行过程以及make执行过程中include文件的顺序Android编译系统分析之lunch分析Android编译系统分析之make分析关注一些make执行过程中的几个关键点Android编译系统分析之几个关键点(一)Android编译系统分析...
2018-12-01 13:20:44
6616
原创 Android编译系统分析之几个关键点(三)
已开通新的博客,后续文字都会发到新博客https://www.0xforee.topAndroid 编译系统解析系列文档解析lunch的执行过程以及make执行过程中include文件的顺序Android编译系统分析之lunch分析Android编译系统分析之make分析关注一些make执行过程中的几个关键点Android编译系统分析之几个关键点(一)Android编译系统分析...
2018-12-01 13:20:02
833
原创 Android编译系统分析之几个关键点(二)
已开通新的博客,后续文字都会发到新博客https://www.0xforee.topAndroid 编译系统解析系列文档解析lunch的执行过程以及make执行过程中include文件的顺序Android编译系统分析之lunch分析Android编译系统分析之make分析关注一些make执行过程中的几个关键点Android编译系统分析之几个关键点(一)Android编译系统分析...
2018-12-01 13:19:23
508
原创 Android编译系统分析之几个关键点(一)
已开通新的博客,后续文字都会发到新博客https://www.0xforee.topAndroid 编译系统解析系列文档解析lunch的执行过程以及make执行过程中include文件的顺序Android编译系统分析之lunch分析Android编译系统分析之make分析关注一些make执行过程中的几个关键点Android编译系统分析之几个关键点(一)Android编译系统分析...
2018-12-01 13:18:42
2503
原创 Android编译系统分析之make分析
已开通新的博客,后续文字都会发到新博客https://www.0xforee.topAndroid 编译系统解析系列文档解析lunch的执行过程以及make执行过程中include文件的顺序Android编译系统分析之lunch分析Android编译系统分析之make分析关注一些make执行过程中的几个关键点Android编译系统分析之几个关键点(一)Android编译系统分析...
2018-12-01 13:16:41
1007
原创 Android编译系统分析之envsetup.sh
已开通新的博客,后续文字都会发到新博客https://www.0xforee.top我们用几个问题来解释这篇文章要讨论的内容为什么用\cd 而不用cd在android原代码的提交中,我们发现了这个解释:Use “\cd” to disable alias temporarily.使用\cd 来临时屏蔽alias别名具体作用如下示例:function mycd(){ ec...
2018-12-01 13:14:32
581
原创 触摸事件分析
每一个事件流,都是以ACTION_DOWN作为开始,以ACTION_UP或ACTION_CANCEL作为结束在处理开始前,需要做一个安全处理,即是否有不可见的window覆盖其上,防止有概述初始化每一个事件流,都是以ACTION_DOWN作为开始,以ACTION_UP或ACTION_CANCEL作为结束在处理开始前,需要做一个安全处理,即是否有不可见的window覆盖其上,防止有恶意软件劫持用户输入事件如果是DOWN事件,那么表示要开始一个新的事件流,这时就需要清理原来的状态,重新开始...
2018-12-01 13:10:08
227
原创 为什么是VSYNC
显示器刷新的频率决定了人肉眼可感受的流畅度,刷新频率太低会导致出现PPT效果,刷新频率太高又没有太高的必要,所以显示器一般的刷新频率为60Hz,人眼可感知的最低限度,即1秒刷新60帧,也就是显示器会1秒从显卡中读取66帧的数据显示到屏幕上,那么这些数据是从哪里来的呢?答案是CPU/GPU产生的,也就是CPU/GPU作为帧的生产者,显示器作为帧的消费者CPU/GPU除了要承载显示帧的绘制工作,还需要承担其他的任务,所以频率都要比显示器高很多。
2018-12-01 13:07:50
834
原创 shell脚本获取当前脚本所在位置
我们在写shell脚本时,经常会遇到自己的一个脚本需要调用到自己同目录下另一个脚本的情况,那么如何能在脚本中拿到我们脚本所在的路径呢?update:20160127BASH_SOURCE[0]这个变量只在bash下有效,所以从脚本可移植性的角度来看, * 对于可以调用子shell执行的脚本 在脚本开头加入#!/bin/bash来指定解释器,然后使用${BASH_SOURCE[0]}方式获
2016-01-26 22:03:18
6536
原创 Gentoo中关于笔记本触控板(Synaptics)的配置
已开通新的博客,后续文字都会发到新博客http://www.0xfree.top---这一篇主要介绍笔记本上的触摸板Synaptics的相关的配置,先来了解一点背景知识背景知识: 1.在linux上,桌面只不过是一个基于内核之上的软件,可以自己添加,删除或者定制。在众多软件发展之中,为了定义统一的基于图形化linux的标准,便出现了X window系统,通常被缩写为X11或者X...
2014-02-09 21:23:33
2961
原创 Gentoo无线网卡安装之broadcom-sta(wl)篇(三)
这是第三篇,介绍Gentoo安装broadcom-sta(wl)无线驱动。Broadcom无线驱动sta(wl)的readme说明文档。如果直接从发行版源中安装,安装完毕直接从此处开始。
2014-02-08 10:04:14
3338
原创 Gentoo无线网卡安装之基础知识篇(一)
2.针对 brcmsmac 选择 Device Drivers --->Network device support ---> Wireless LAN ---> Broadcom IEEE802.11n PCIeSoftMAC WLAN driver,还需要安装sys-kernel/linux-firmware。最近接触了一下Gentoo,在无线网卡方面遇到了问题,于是便广泛的查找资料,虽然到最后还是没有搞定,但是把过程中积累下来的东西和大家分享分享,有什么错误的地方,欢迎大家回帖指正。
2014-02-08 09:52:15
5011
原创 c语言的那些函数们
(回车字符也放在缓冲区中),当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符,getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕,如果输入多个字符后回车,则后续的getchar会。以附加只写的方式打开,若文件不存在,则会建立该文件,若文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF符保留)不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的EOF符不保留)
2013-09-28 13:52:30
638
原创 android中如何使用GPU实现硬件加速,3D渲染
Android在启动后,会在运行时根据配置文件加载OpenGL(libagl & libhgl)的实现,如果有libhgl实现,默认使用libhgl实现,否则使用libagl实现。(有很多人问,这样会不会增加耗电什么的,我觉得只会减少耗电,毕竟3D本来就是gpu的强项,之所以系统还会调用cpu,是为了保证兼容性。软件默认使用gpu,因为没有cpu的描述,在gpu失败的情况下,系统还是会继续使用cpu。本文件的作用是帮助系统选择“在某些3D应用时,使用cpu还是gpu来解码”,0为是,1为否。
2013-09-08 12:51:18
3484
原创 解决linux下Eclipse中文乱码问题
把Windows下的工程导入到了Linux下Eclipse中,由于以前的工程代码,都是GBK编码的(Windows下的Eclipse 默认会去读取系统的编码,所以Widnwos下的Eclipse的编码为GBK),而Ubuntu默认是不支持GBK编码的。首先要修改/var/lib/locales/supported.d这个文件夹的权限,否则不能修改该文件夹下的local文件,使用如下命令。修改/var/lib/locales/supported.d/local文件,在文件中添加。然后在输出的结果中会出现。
2013-09-08 12:40:28
934
原创 解决android使用adb工具push文件时出现read-only
经常在使用调试手机或者往手机里传输文件是,会用到adb工具。然后重新执行adb push即可。
2013-09-08 12:27:55
1888
原创 Bash shell脚本备忘
已开通新的博客,后续文字都会发到新博客http://www.0xfree.top---shell在linux中是很常用的一种解释类型的脚本,包含很多类型,使用范围较广的为bashshell ,在读android源代码中shell文件随处可见,故对此作一备忘(详解shell都可以单独出书了),将一些常用符号和语法记录如下,方便查找1.一个简单的shell脚本如下#!/bin/ba...
2013-04-13 09:22:30
655
原创 内核编译之编译2.6.35
已开通新的博客,后续文字都会发到新博客http://www.0xfree.top---前段时间中兴发布了小v的内核源码35,便下载下来,准备找个时间编译一下,一直比较忙,便拖着拖着就到了这周,现记录一下编译小v源码的全过程,包括遇到的一些问题,和解决办法下载完全部的源码,总十个压缩包,然后开始解压,可第一轮解压后,发现解出来的东西是一些既不是压缩包也是文件的东西,傻眼了,是下错了?...
2013-03-23 20:40:00
771
原创 recovery之刷机脚本自定义(解决刷zip文件时出现Status 6错误)
已开通新的博客,后续文字都会发到新博客http://www.0xfree.top---一直没有时间看看关于recovery刷机的内容,昨天突然手痒痒,好久没有刷机了。但是翻看过硬盘里的所有刷机包,却发现没一个是自己想要的,而且自己定制的刷机包里许多软件都过时了,刷完后自己还得一个一个下载更新,想想都麻烦,于是便决定制作一个极度精简包+一个软件专刷包。(此方法适用于升级系统软件,...
2013-03-22 15:16:40
12876
原创 编译recovery记录日志
已开通新的博客,后续文字都会发到新博客http://www.0xfree.top---近期编译recovery中,将进度,错误记录如下,随时纠正更新:1.编译过程中出现:E:Can't find miscE:failed to find"cache"partition to mout at"/cache"E:Can't mout/cache/recovery/command...
2013-03-17 23:19:13
1983
原创 编译recovery流程
已开通新的博客,后续文字都会发到新博客http://www.0xfree.top---近期在编译recovery,用了两个周的时间,总算成功了,现小结一下在同步好cm源码后,在bootloader目录下有cm自带的RWM recovery源码---------------------------------------------------------------------...
2013-03-17 22:49:21
2763
原创 硬盘安装ubuntu的一点小小感受
初识ubuntu是因为打小就喜欢黑客身上那种神秘的色彩,那种专注,那种对技术的狂热追求。在我印象中,黑客都是狂敲键盘,然后根据屏幕上边的一串串符号代码,然后攻无不克,战无不胜。而ubuntu所属linux的性质,也让我选择了它。(在我看来linux的命令行很具有诱惑力)ubuntu安装一般有两种方法,一种为wubi安装,不需要专门分区就可以运行,另一种就是硬盘安装了。我个人喜欢硬盘安装,原因是
2013-03-03 15:05:41
540
原创 关于android窗口的特效
android中的特效存在于framework-res.apk文件的anim目录下只要反编译framework-res.apk就可以看到anim目录了,如果想要替换,可直接下载其他framework中的特效文件用解压工具打开,进行替换即可现说明android特效文件具体所指:(不断更新)status_bar_enter 通知栏 移除status_bar_exit
2013-03-03 13:47:40
614
原创 编译出现:“X11/Xlib.h:没有该文件或目录”
已开通新的博客,后续文字都会发到新博客http://www.0xfree.top---编译出现:“X11/Xlib.h:没有该文件或目录”解决方法如下:<sudo apt-get install libx11-dev> ...
2013-02-21 23:40:04
1918
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人