- 博客(99)
- 资源 (30)
- 收藏
- 关注

原创 20分钟源码角度彻底了解Flutter的State生命周期以及Widget, Element, RenderObject的关系(超详细)
这个文章将会让你了解flutter的三棵树,并且知道Widget的生命周期是怎么被执行的,从而写代码和修Bug会有很大的帮助
2024-05-17 02:05:02
1220

原创 30分钟彻底了解Flutter整个渲染流程(超详细)
这篇文章将会告诉你Flutter的渲染机制,从运行到请求刷新,到执行布局绘制页面的整个刷新的流程。
2024-05-10 02:43:14
2233
1

原创 5分钟了解Flutter线程Isolate的运用以及Isolate到底是怎样执行的
所有 Dart 代码都在isolate中运行,isolate与线程类似,但不同之处在于isolate有自己的isolate内存。微观角度来看,Isolate真不是具体的线程,它只是dart运输到线程执行的一种包装载体。并且是放到系统的线程池里面执行的一种包装。
2024-05-08 15:36:33
1596
2

原创 30分钟打造属于自己的Flutter内存泄漏检测工具---FlutterLeakCanary
借鉴Android的LeakCanary原理,实现属于自己的Flutter版本的LeakCanary自定义检测内存泄漏
2024-05-07 21:59:57
1565

原创 15分钟带你彻底了解App绘制流程-安卓篇
通过这篇文章可以让从源码角度彻底知道安卓的绘制流程,以及View和ViewGroup的执行生命周期的回调等
2023-12-20 00:36:16
1364
1
原创 2分钟教你Flutter怎么避免引用内存泄漏
所有语言的内存泄漏无非就是GC Root(线程,全局或静态数组或引用等)的引用链持有了需要释放的引用,导致无法释放。
2024-05-06 18:36:26
1010
原创 7分钟0基础彻底理解常用数据压缩原理---哈夫曼编码
如果你之前没有做过数据压缩,或者想要了解数据压缩的原理,那么这编文章将会帮到你。这编文章将会带你彻底了解哈夫曼编码原理,这种编码方式常用作的**图片无损压缩**,和ZIP的等压缩存储。
2024-02-23 22:17:19
1683
1
原创 30分钟带你深入优化安卓Bitmap大图
众所周知,安卓的图片都是通过Bitmap来完成设置间接交给Gpu去渲染到屏幕。如果想要优化图片,你还是个入门者,那么就必须要了解Bitmap.接下来我们先介绍Bitmap,再去深入研究如何优化大图如何在App上显示。
2024-01-19 00:13:18
1205
原创 Android内存抖动
什么原因导致‘内存抖动’内存回收是指在程序需要对象的时候,在堆当中分配出来一块空间,使用完毕以后,由 GC 帮我们清理掉这片内存空间。如果频繁的一直持续上述操作,就会引起内存抖动。也就是有源源不断的对象被创建,同时又有源源不断的对象被回收,这时候就会内存抖动。安卓中内存抖动的影响1.影响app响应速度。2.app UI卡顿,甚至应用无响应。为什么有这么大影响?因为现在基本的jvm(比如cms)的垃圾回收处理器,需要停止工作业务线程,再进行垃圾回收.如果回收的时间越久,app的所有
2022-04-24 11:52:28
2965
原创 一次成功编译Bilibili安卓播放器
Bilibli 编译準備:需要安裝yasm比較新版本,比如 1.2.0 。否者編譯ffmpeg會報錯需要设置sdk 目录,ndk 目录, java homeexport JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Homeexport ANDROID_NDK=/Users/kaka/Library/android/sdk/ndk/android-ndk-r10bexport
2022-04-24 10:39:49
531
转载 Dex加载工具类
public class HotFixUtils { private static final String TAG = "lxbnjupt"; private static final String NAME_BASE_DEX_CLASS_LOADER = "dalvik.system.BaseDexClassLoader"; private static final String FIELD_DEX_ELEMENTS = "dexElements"; private .
2020-07-24 18:06:19
289
原创 swift强转实例
//单个值操作,例如data是个Any类型,要强转成String func test( data:Any?)->String{ guard let dataStr = data as? String else {return "" } return dataStr } func test( data:Any?){ ...
2019-08-29 09:46:07
521
原创 flutter rsa
由于公司要用到rsa加密,所以要刷一个rsa工具.在网上搜索,发现很多人是用native实现的.这个太笨重了,不仅仅android ,ios各自维护一份,而且还有打包的版本问题.于是我就开始折腾去找官方的加密库.然后发现rsa加密是需要用到pem文件做钥匙的.写死了.无语的一批.这样就不能动态用字符串做钥匙来加密解密.但是我看了源码后,发现还是有救的,通过拼接pem文件协议开始结束部分到钥匙上面,...
2019-07-17 22:44:59
1518
1
原创 Smali从入门到精通(二)之方法定义
根据上一篇内容,我们已经初步了解了Smali以及文件的声明。接下来我们将认识类的方法的定义,请看下面这个类csdn.yoyo_newbie.smalianalyzesample.Test1package csdn.yoyo_newbie.smalianalyzesample;import android.util.Log;public class Test1 { private...
2019-06-03 00:55:45
4975
3
原创 Smali从入门到精通(一)之初步认识Smali
官方吐槽:什么是Smalismali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言。怎么得到Smali文件?通过反编译Java,生成Smali(可以使用apktool工具可进行反编译), 如xx.Test.java 反编译==> xx.Test.smali实践分析构建一个包名为csdn.yoyo_newbie.smalia...
2019-06-02 23:10:24
12171
1
原创 java截取文章中的句子
通过使用强大的开源Lingpipe的库实现,百行代码以内就可以轻松把文章的所有句子保存下来。maven链接:<dependency> <groupId>de.julielab</groupId> <artifactId>aliasi-lingpipe</artifactId> <version&g...
2018-10-25 23:54:30
1584
原创 MVP框架之EasyMVP
转载请声明出处:http://blog.youkuaiyun.com/YoYo_Newbie/article/details/78509820前言由于前年学习MVP架构后,对其有了深刻的认知。离职后到了下家公司决定开发个MVP框架,投入使用。大概花了一周的时间包括设计,编码,自测搞完了这套框架。随着投入开发时,还是有不少问题,不过经过不断的淬炼,使用了一年到了如今的稳定版。最近发现还有耦合性优化的空间,于是提升
2017-11-12 03:04:52
1334
原创 android 绘制计算text高度,宽度大小
绘制文本的时候,通常我们需要计算文本的大小来进行布局。而需要精确计算文本大小时候,需要用Paint的api来获取文本的高度大小,通常的做法是:String text = "xxx";Paint pain = new Paint();pain.setAntiAlias(true);float textSize = 24f;pain.setTextSize(textSize);
2017-07-20 10:10:06
2709
原创 android studio cmake 配置.a连接库
自 android studio 2.2 +后就集成了ndk开发, 自带cmake 编译器. 编写ndk时候,配置很简单。再也不需要用android.mk配置文件。新建一个带nkd开发项目的结构是这样的,言归正传,那么要添加第三方的xx.a链接库呢?通常我们把第三方提供的h文件夹,放在cpp的include里面。这是规范,不是必须。而xxx.a库放在s
2017-07-05 15:17:14
9226
原创 QT图片拉伸填充
QLabel *lable = ui->lb_imgValification; QByteArray data = reply->readAll(); QPixmap pixmap; pixmap.loadFromData(data); int with = lable->width(); int heigh
2017-06-02 13:45:16
4915
原创 slidingmenu沉淀式
将activity沉淀式时候,发现slidingmenu不会上移,原因是slidingmenu重写了fitSystemWindows这个方法,找到fitSystemWindows方法。将它删掉,就轻松解决了。
2016-11-18 09:50:02
482
原创 Android Databinding 从入门到转行(四)自定义设置通知刷新回调
步骤:1.添加ViewModel属性成员T t2.在ViewModel添加个静态方法sss,方法第一个参数是你将要操作的view,第二个参数以上是你的ViewModel属性T成员变化时候,会通知回调这个方法,并且传值给这参数, 3.添加注解 @BindingAdapter("app:xxx"), xxx名字随意取,会在xml视图用到.
2016-07-20 14:02:49
3092
原创 Android Databinding 从入门到转行(三)在xml视图将ViewModel成员注入到View的setXXX方法
注入规则:条件:某View中如含方法:setXXX, 参数唯一,类型为T 注入步骤:在ViewModel中,添加 T 类型成员引用t 注入方法:在对应的xml,的根元素layout, 添加xmlns:app="http://schemas.android.com/apk/res-auto 然后,找到某View , 添加app:xxxx
2016-07-19 20:57:23
5088
原创 Android Databinding 从入门到转行(二)添加点击事件
需求二: 实现用户简介界面---已知用户名字为Sam, 年龄为25.进入界面时候,要求显示用户名字字段,年龄字段,内容都显示未加载,点击 “显示数据”才显示用户的数据UI效果图:使用databinding , 响应事件不在需要在activity里面添加, 而是在View Model里面添加!是不是很6?关键代码
2016-07-19 17:54:33
4473
原创 Android Databinding 从入门到转行(一)初步介绍
这是google官方的介绍,不过需要翻墙,你懂的。。。。https://developer.android.com/topic/libraries/data-binding/index.html这官方上的简介,翻译过来是酱紫的:Data Binding Library提供了灵活性和广泛的兼容性-这是一个支持库,前提是要使用版本Android 2.1(API级别7+)以上
2016-07-19 16:43:00
1635
原创 解析“a=xxx;b=xxx;c=xxx;.....”,使用"Uson"
经常做项目发现有种字符串格式需要解析---- "a=xxx;b=xxx;c=xxx;..." , 然而这种格式在网上并没有人写对应的框架工具去解析它并且去规范它。因此,菜鸡的我没办法去偷懒,所以只能去自己去写。我的封装原则就是一旦封装,用起来就得无脑且能偷懒则偷懒。"a=xxx;b=xxx;c=xxx;..." 这个格式比较像url的拼接,所以本菜鸡取名叫Uson。。。呵呵勿喷。需
2016-07-14 15:25:31
1495
原创 在静态函数调用指针函数写法
class H{public: virtual void test(void){printf("ssssssssssssssss");}};typedef void (H::*Method)(void);#define call_fun(_method)(Method)(&_method)class B : public H{public: void test(void){
2016-05-05 14:43:09
805
原创 <<=与>>=运算的意义
概念都是假,懂用才是真理。废话不多说,直接看例子。 a a >>= 1 结果相当于 a 除以 2的一次方 a a >>= 2 结果相当于 a 除以 2的二次方 ..... 那么 , 推理 a a >>= n 结果等统一, a 除以 2的N次方 如: public static void m
2016-05-04 16:17:52
793
原创 指针函数回调实例
以下实例是模拟发起post请求到web服务器的后回调处理。 HttpClient.h#pragma once#include #include class BaseClient{public: void onSucess(char* result);};typedef void (BaseClient::*RespnoseCalback)(char*); #define
2016-04-26 13:35:50
452
原创 位运算使用场景
public class Test { public static class Info { public static int FLAG_SHABI = 0x0001; public static int FLAG_LAJI = 0x0002; public static int FLAG_ZHAZHA = 0x0004; public int mFlag = 0;
2016-04-25 17:20:52
1513
原创 万能ExpandableListAdapter适配器
源码下载地址:https://github.com/Sam474850601/CommonExpandableListAdapterDemo或者引入地址: compile 'com.github.sam474850601:fastutils:1.0.3'为了避免每次都要写重复代码的BaseExpandableListAdapter,所以写了通用的adapter假设我要实现这个效果:
2015-12-18 12:58:37
3402
原创 IInputConnectionWrapper: showStatusIcon on inactive InputConnection
发现了一个bug, 在我点击消除editext时候。突然间退出了几面。而且没有任何警告。原因是 自己写的onKeyDown的关系,和消除的按钮冲突了。修改下就好了
2015-12-05 12:04:06
2470
原创 折线图(七)自定义属性
项目下载地址:https://github.com/Sam474850601/ChartView效果图如下:xml代码xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="mat
2015-12-01 13:59:50
1006
原创 折线图(六)绘制真正可用的折线图
之前那几遍都是为了展示实现思路的,并不是真正的图实现。看过的人大致都知道接下来怎么做了,只不过是测量下折线图然后设置合理的大小。这个下面本人实现的折线图是测试数据的图,随机点测试package sam.android.utils.widget;import java.util.List;/** * 折线信息 */public class LineCha
2015-11-26 00:43:21
1927
原创 修改Actionbar菜单字体大小
如:<application android:name=".MyApplication" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">修改主题:appThemename="A
2015-11-19 17:01:29
1557
原创 折线图(五)根据实际情况值,绘制在折线图坐标轴对应位置上
实现思路,先计算保存这些实际值,然实际值对应的坐标轴上的真正位置,从而绘制绘制出来。主要代码如下/** * 绘制所有实际值坐标 * @param canvas */public void drawPoints(Canvas canvas){ if(pointQueue.isEmpty()) return; //首先计算取1xValue多少p
2015-11-19 13:43:14
2648
原创 SwipeRefreshLayout嵌套Viewpager失效
修改 viewpager 触控事件即可。viewpager.setOnTouchListener((v, event) -> { switch (event.getAction()) { case MotionEvent.ACTION_MOVE: swipeRefreshLayout.setEnabled(false);
2015-11-19 11:39:41
942
原创 折线图(四)计算坐标轴文字大小,确定准确位置
计算paint后的文字长度,高度 方法如下Paint xValuePaint = new Paint(); //画笔xValuePaint.setColor(Color.BLACK);xValuePaint.setTextSize(textSize);xValuePaint.getTextBounds(xName, 0, xName.length(), nRect);int nW
2015-11-18 13:22:33
1297
httpclient相关jar
2015-11-14
居于socket聊天android
2014-06-18
强制关闭安卓应用
2014-05-28
pptx所需所有的jar
2013-12-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人