- 博客(528)
- 资源 (42)
- 收藏
- 关注
原创 Linux大全
Activity以singleTask模式启动,intent传值的解决办法 ---- https://blog.csdn.net/harryweasley/article/details/46557827/Linux 串口编程学习记录(termios.h) ---- https://blog.csdn.net/Flag_ing/article/details/125644852。
2023-04-12 11:36:20 4677 1
原创 PLT hook 方案 PLT hook
PLT hook 方案 PLT hook字节跳动开源 Android PLT hook 方案 bhook --- https://zhuanlan.zhihu.com/p/401547387inline hook 的功能无疑是最强大的 inline hook () ->.dyn.aps2.dyn.aps2LT hook 并不是修改磁盘上的 ELF 文件,而是在运行时修改内存中的数据,因此我们主要关心的是执行视图,即 ELF 被加载到内存后,ELF 中的数据是如何组织和存放的。 size_t (*st
2022-07-05 13:16:40 604
原创 文读懂 View 的 Measure、Layout、Draw 流程
美团App 插件化实践 ---https://tech.meituan.com/2017/10/12/android-hydra.html这个思路是对的,但是远不够。例如,Google 自己的Support包里面的一个类android.support.v7.view.ContextThemeWrapper会生成一个新的Theme保存:ContextThemeWrapper会生成一个新的Theme保存: Theme()ContextThemeWrapper会生成一个新的Theme保存:pu.
2022-05-26 13:48:26 218
原创 深入探索Android稳定性优化
https://juejin.cn/post/6844903972587716621--深入探索Android稳定性优化https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w?-//-Android 平台 Native 代码的崩溃捕获机制及实现CountDownTimer.onFinish on a null()四、捕捉native crash-native crash-nativenative crash-native()...
2021-09-03 16:21:56 561
原创 android
4、AsyncTask的缺陷和问题,说说他的原理。AsyncTask是什么?AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI。AsyncTask是一个抽象的泛型类,它提供了Params、Progress和Result这三个泛型参数,其中Params表示参数的类型,Progress表示后台任务的执行进度和类型,而Result则表示后台任务的返回结果的类型,如果AsyncTask不需要传递具体的参数,那么这三个泛型参
2021-01-20 11:51:39 515
原创 Bitmap源码解析与抛弃google提供的压缩算法
Bitmap源码解析与抛弃google提供的压缩算法Android程序员如何切合移动互联网的“星辰和荆棘”http://ddrv.cn/a/213673Bitmap图片压缩,大图加载防止OOMhttps://dandanlove.blog.csdn.net/article/details/105677102史上最全!押题率90%的 Android 中高级工程师面试复习大纲及真题答案整理(中篇)https://www.it610.com/article/1344194310530215.
2021-01-11 16:15:55 360 1
原创 自己手写RecycleView加深对RecycleView理解
自己手写RecycleView加深对RecycleView理解https://blog.csdn.net/zmm911zmm/article/details/91351326Stack getScaledTouchSlopgetScaledTouchSlop TouchSlop StackonInterceptTouchEvent ,onTouchEventStack getScaledTouchSlopgetScaledTouchSlop区分手势点击和滑动的距离 界...
2020-12-25 15:54:05 290
原创 数据库框架:GreenDao 实现原理
数据库框架:GreenDao 实现原理Android数据库greenDAO框架用法和源码分析https://blog.csdn.net/duanyy1990/article/details/50955228greenDAO -> OrmLite、AndrORM。object/relational mappingOrmLite、AndrORM。 LitePal等数据库相比ActiveOrm、LitePal等数据库相比LitePal等数据库相比greenDAO Entity
2020-12-15 13:23:39 324
原创 架构进阶,Dagger2的原理及使用详解
架构进阶,Dagger2的原理及使用详解https://www.jianshu.com/p/04d9db541155解决Android 8.0和9.0无法获取SSID (unknow ssid)https://blog.csdn.net/weixin_39706415/article/details/84571421@Named @Scope @Inject @Provides注解提供,但是呢,这个@Provides只能在固定的模块中,也就是@Module注解,我们查找的时候,不是直接去找.
2020-12-03 16:59:17 3691
原创 依赖注入框架:ButterKnife 实现原理
依赖注入框架ButterKnife的使用与原理解析https://blog.csdn.net/AndrExpert/article/details/103726082
2020-11-18 16:54:59 250
原创 Android内存优化
Android内存优化(六)LeakCanary使用详解https://cloud.tencent.com/developer/article/1034262install方法会返回RefWatcher用来监控对象,LeakApplication中还要提供getRefWatcher静态方法来返回全局RefWatcher。最后为了举例,我们在一段存在内存泄漏的代码中引入LeakCanary监控,如下所示。LeakCanaryleakcanary-android-no-op07LeakCanar
2020-11-04 17:14:07 778
原创 事件总线框架:EventBus 实现原理
事件总线框架:EventBus 实现原理EventBus框架原理解析https://blog.csdn.net/qq_30124547/article/details/108380894EventBusAIDL 观察者模式。Subscription:订阅者信息,包含订阅主体及方法,一个订阅主体可能会监听多个Event事件,所以订阅主体会被多次引用EventBus Poster:主要为处理任务的线程,主要三个实现AsyncPoster和BackgroundPoster实现差不多,都是使.
2020-10-27 13:38:28 458
原创 图片加载框架:Glide 实现原理
图片加载框架:Glide 实现原理Glide图片加载框架Glide简单使用和缓存原理https://blog.csdn.net/Wengwuhua/article/details/105892814//with load intoAppGlideModuleapplyOptions GlideBuilderbuilder.setDefaultRequestOptionsRequestOptionsAndroid 图片加载框架Glide主流程源码分析https:/...
2020-10-20 15:16:41 357
原创 一张图看懂Rxjava的原理
https://www.cnblogs.com/jymblog/p/11731546.html一张图看懂Rxjava的原理subscribeObservable.create ObservableOnSubscribecreate map subscribeOn map observeOn flatMapsubscribe observer subscribeActualObservableXXXsubscribe注入观察者从左往右的...
2020-10-12 09:58:56 717
原创 网络封装框架:Retrofifit 实现原理
网络封装框架:Retrofifit 实现原理Java的代理和注解https://www.jianshu.com/p/04e60bee2d80Retrofi2源码解析——动态代理和注解的实战应用https://www.jianshu.com/p/542ca9eabe2candroid 事件分发,解决由于listview中实时刷新 ,导致子view点击事件失效http://www.360doc.com/content/19/0606/20/62778851_840851629.shtml
2020-09-30 14:48:13 356
原创 网络底层框架:OkHttp 实现原理
OkHttp3简单使用教程(一):请求和响应https://www.jianshu.com/p/f3f228d3598c\nHTTP请求报文主要由请求行、请求头部、请求正文3部分组成.请求行:由请求方法,URL,协议版本三部分构成,之间用空格隔开请求 Content-Language请求zhengwen/n23 URL带的参数HTTP响应报文格式:HTTP响应报文主要由状态行、响应头部、响应正文3部分组成HTTP响应报文主要由状态行、响应头部、响应正文3部分组...
2020-09-28 11:08:18 972
原创 浅谈Android设计模式
浅谈Android设计模式https://blog.csdn.net/xiaoming100001/article/details/80302143干货|安卓APP崩溃捕获方案——xCrashhttp://blog.itpub.net/69945252/viewspace-2674668/instance//双重检查模式DCL,在某些情况下会失效if instance == nullsynchronized instance == null /静态内部类单例模式...
2020-09-21 15:36:23 271
原创 Android开发组件化的一些思考
Android开发组件化的一些思考https://www.jianshu.com/p/0f03602d4759ARouter LiveDataBuspublicImplementation = []other.each { implementation project(it)}sourceSets { ext.android.isApplication manifest.srcFile ''}组件化跳转分析ARouter然...
2020-09-16 14:10:11 200
原创 Android 插件化和热修复知识梳理
代理模式P.func InvocationHandler.invokeProxy.newProxyInstanceProxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h)动态代理动态代理对象P执行方法调用顺序:P.func==>InvocationHandler.invoke==>目标类实例.func动态代理实现需要3步:1 创建目标类接口 及 目
2020-09-10 11:31:30 194
原创 android 图片 LRUCache 原理 Glide 源码解析(下)
RequestManagerRetrieverRequestManager FragmentManager fm = activity.getSupportFragmentManager(); FragmentManager fm = fragment.getChildFragmentManager();fm.beginTransaction.add() ModelLoader<T, InputStream> streamModelLoader = Glide.bui...
2020-09-03 09:53:17 227
原创 android 图片 LRUCache 原理 Glide 源码解析(上)
Android 库 图片库比较https://www.jianshu.com/p/44a4ee648ab4ImageLoader Picasso Glide FrescoMemoryCache DiskCacheRequestManager,通过Engine GetDataInterface:数据获取接口,负责从各个数据源获取数据。比如MemoryCache DiskCacheDisplayer ProcessorDisplayer ImageLo...
2020-08-31 11:52:47 504
原创 Android CoordinatorLayout 自定义Behavior和Rxjava使用总结,Jetpack,LiveData
DataSource DataSourceFactory LiveData ViewModelBuilding MVP apps: MVP Part I(MVP官网方法) ->http://www.gwtproject.org/articles/mvp-architecture.html#presenterAndroid Jetpack LiveData解析 ->https://www.jianshu.com/p/b04abbb766e0Android Jetpack->ht.
2020-08-30 13:07:29 417
原创 详解4字节对齐
所谓的字节对齐,就是各种类型的数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这个就是对齐。我们经常听说的对齐在N上,它的含义就是数据的存放起始地址%N==0。具体对齐规则会在下面的篇幅中介绍。首先还是让我们来看一下,为什么要进行字节对齐吧。各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU,诸如SPARC在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构上必须编程必须保证字节对齐。而有些平台对于没有进行对齐.
2020-08-18 15:14:28 3474
原创 RxJava2 系列 -1:一篇的比较全面的 RxJava2 方法总结
RxJava2 系列 -1:一篇的比较全面的 RxJava2 方法总结看了许多讲解RxJava的文章,有些文章讲解的内容是基于第一个版本的,有些文章的讲解是通过比较常用的一些API和基础的概念进行讲解的。但是每次看到RxJava的类中的几十个方法的时候,总是感觉心里没底。所以,我打算自己去专门写篇文章来从API的角度系统地梳理一下RxJava的各种方法和用法。1、RxJava 基本1.1 RxJava 简介RxJava是一个在Java VM上使用可观测的序列来组成异步的、基于事件的程...
2020-08-12 22:20:19 651
原创 Android运行时ART简要介绍和学习计划
在上篇中,我们分析到了OatFile的begin_和end_变量分别被指定到了符号oatdata和oatlastword指定的位置。那么指定的这一段数据到底是什么呢?本文会接下来分析。首先来看OatFile::Setup的实现:bool OatFile::Setup() { if (!GetOatHeader().IsValid()) { LOG(WARNING) << "Invalid oat magic for " &l...
2020-08-06 19:32:00 370
原创 LeakCanary原理分析
LeakCanaryclass Helper {}class Utils { public static Helper helper = new Helper();}static Helper helper = new Helperclass ExampleApplication : Application() { val leakedViews = mutableListOf<View>()}class MainActivity : Activit...
2020-08-06 11:02:14 534
原创 Android Region代码分析
一、Region的定义和合法性检查在Android系统中,定义了Region的概念,它代表屏幕上的一个区域,它是由一个或多个Rect组成的,代码位于frameworks/native/libs/ui/Region.cpp。而Rect则代表屏幕上的一个方形区域,这个区域可能是不可见的,部分可见或者完全不可见的。从代码实现的角度来看Region的实现,它拥有一个私有的数据成员变量:mStorage,它的类型为Vector<Rect>:1.mStorage是一个有序数组,数组元素类型为Rec.
2020-07-31 11:35:42 556
原创 Android JNI 通过C++调用JAVA
1. JNIEnv对象 对于本地函数 JNIEXPORT void JNICALL Java_video1_TestNative_sayHello(JNIEnv * env, jobject obj) { cout<<"Hello Native Test !"<<endl; } JNIEnv类型代表Java环境。通过这个JNIEnv*指针,就可以对Java端的代码进行操作。如,创建Java类得对象...
2020-07-30 20:40:39 255
原创 Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)过程分析
从前面Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析一文还可以知道,每一个Java层的Surface对象内部都有一块画布,这块画布是通过它的成员变量mCanvas所指向的一个Java层的CompatibleCanvas对象来描述的。so是一个类型为so_t的结构体,它的成员变量canvas描述的是Java层的Surface类的成员变量mCanva在类中的偏移量,因此,通过这个偏移量就可以获得参数clazz所指向的一个Java层的Surface...
2020-07-29 13:16:07 545
原创 Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
ndroid应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
2020-07-27 21:36:22 669
原创 Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析
Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析
2020-07-26 15:18:31 390
原创 Android应用程序窗口(Activity,Window,View)原理解析
Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析ActivityThreadpublic final class ActivityThread { private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) { activity = mInstrumentation.newActivity( ...
2020-07-23 22:02:34 514
原创 Dalvik虚拟机源码初探
Dalvik虚拟机JNI方法的注册过程分析这些Bridage函数实际上仍然不是直接调用地调用JNI方法的,这是因为Dalvik虚拟机是可以运行在各种不同的平台之上,而每一种平台可能都定义有自己的一套函数调用规范,也就是所谓的ABI(Application Binary Interface),这是一个API(Application Programming Interface)不同的概念。ABI是在二进制级别上定义的一套函数调用规范,例如参数是通过寄存器来传递还是堆栈来传递,而API定义是一个应
2020-07-22 20:59:51 451
原创 hashmap ArrayList LinkedHashMap等原理解析
android的hashmap 原理以及源码探究Android基础-Android中的HashMap浅析
2020-07-20 21:29:27 211
原创 热修复插件化原理分析
插件化原理分析插件化要解决的三个核心问题:类加载、资源加载、组件生命周期管理。类加载:Android中常用的两种类加载器:PathClassLoader和DexClassLoader,它们都继承于BaseDexClassLoader。DexClassLoader的构造函数比PathClassLoader多了一个,optimizedDirectory参数,这个是用来指定dex的优化产物odex的路径,在源码注释中,指出这个参数从API 26后就弃用了。PathClassLoader主要用来加载系统类和
2020-07-15 22:50:10 281
原创 RecyclerView动画源码浅析
RecyclerView动画源码浅析adapter.notifyItemRemoved(1)会回调到 RecyclerViewDataObserver:adapter.notifyItemRemoved RecyclerViewDataObserveronItemRangeRemovedtriggerUpdateProcessormAdapterUpdateDuringMeasureconsumePendingUpdateOperationsdispatchLay...
2020-07-14 22:16:41 239
尚硅谷Android高级开发技术之JNI和NDK开发
2018-09-19
基于MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + MTRVA的综合应用
2018-09-18
android 断点续传(绝壁好用,这个demo我直接添加到项目中了,大文件下载不用担心断网和网络切换)
2018-09-07
2018718(最新eclipse 下android开发工具包),集成了sdk,SDKManager,eclipse都是配套的,我一直再用它开发
2018-07-18
android在原生代码中使用POSIX通信面向连接的TCP客户端和服务端。
2018-06-08
android studio cmake android ndk-jni动态库开发
2018-06-04
android pm2.5分割线自定义横线view(非浸入式)绿,棕,红
2018-05-31
Dagger2 @Component
2018-05-10
Rxjava2 + retrofit2 + MVP + Dragger2
2018-05-09
android( 2017127_ffmpeg微信小视频录制和快速压缩,这个录制视频和压缩率太高了。
2017-12-07
android kotin+ ftp视频上传+android7.0 语音识别+百度地图+ 图片和拍照
2017-12-06
flutter_test.rar
2020-06-21
最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld
2020-04-01
UVCCamera.rar
2020-04-01
AirHockeyTouch1.rar
2020-03-29
MediaCodec编码PCM为aac音频实现边播边录(一).zip
2020-03-19
MediaCodec编码PCM为aac音频实现边播边录(二).zip
2020-03-19
FFmpeg解码流程.zip
2020-03-19
FFmpeg对音频数据重采样生成PCM数据.zip
2020-03-19
FFmpeg+OpenSL ES 完成音频播放.zip
2020-03-19
C++多线程解码音频数据.zip
2020-03-19
C++多线程,生产者和消费者模型以及C++全局调用Java方法.zip
2020-03-19
C++队列缓存AVpacket.zip
2020-03-19
UVCCameraDemo.rar
2019-06-17
websocket源码
2019-04-25
android 自定义dialogfragment全屏对话窗体
2018-12-03
ContentProvider封装SharedPreferences功能,解决跨进程存取值的问题
2018-10-09
学习Matrix的对图像的处理可分为四类基本变换: Translate平移变换 Rotate 旋转变换 Scale缩放变换 Skew 错切变换 最好的demo
2018-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人