- 博客(18)
- 资源 (42)
- 收藏
- 关注
原创 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 557
原创 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 547
原创 Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
ndroid应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
2020-07-27 21:36:22 670
原创 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 516
原创 Dalvik虚拟机源码初探
Dalvik虚拟机JNI方法的注册过程分析这些Bridage函数实际上仍然不是直接调用地调用JNI方法的,这是因为Dalvik虚拟机是可以运行在各种不同的平台之上,而每一种平台可能都定义有自己的一套函数调用规范,也就是所谓的ABI(Application Binary Interface),这是一个API(Application Programming Interface)不同的概念。ABI是在二进制级别上定义的一套函数调用规范,例如参数是通过寄存器来传递还是堆栈来传递,而API定义是一个应
2020-07-22 20:59:51 454
原创 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 283
原创 RecyclerView动画源码浅析
RecyclerView动画源码浅析adapter.notifyItemRemoved(1)会回调到 RecyclerViewDataObserver:adapter.notifyItemRemoved RecyclerViewDataObserveronItemRangeRemovedtriggerUpdateProcessormAdapterUpdateDuringMeasureconsumePendingUpdateOperationsdispatchLay...
2020-07-14 22:16:41 240
原创 Android RecyclerView 局部刷新分析
@Overrideprotected void onLayout(boolean changed, int l, int t, int r, int b) { dispatchLayout(); mFirstLayoutComplete = true;} //2.mInPreLayout 设置为 true 后面有用 mState.mInPreLayout = mState.mRunPredictiveAnimations; //5.保存动画信息相关 ...
2020-07-13 22:24:15 618
原创 属性动画特性,Interpolator,TypeEvaluator ,LinearLayout、RelativeLayout,SharedPreferences原理总结
PropertyValuesHolder void setupSetter(Class targetClass) { Class<?> propertyType = mConverter == null ? mValueType : mConverter.getTargetType(); mSetter = setupSetterOrGetter(targetClass, sSetterPropertyMap, "set", propertyType);...
2020-07-08 09:50:25 204
原创 Binder之Service Manager在探(二)
root@android-virtual-machine:/home/android# cd /root@android-virtual-machine:/# find ./ -name 'binder.c'./work/android-5.0.2/frameworks/native/cmds/servicemanager/binder.c./work/linux-3.0.86/drivers/staging/android/binder.croot@android-virtual-...
2020-07-06 23:18:00 139
原创 JetPack学习总结
JetPackNavigation 之Fragment跳转NavController controller = Navigation.findNavController(v);controller.navigate(R.id.action_testHomeFragment_to_testDetailFragment);Navigation graph中直接设置转换动画,极大减少了工作量。当然如果对自带动画效果不满意,也可以创建Animation资源自己编写xml文件来...
2020-07-06 21:03:33 533
原创 四大组件原理在探
四大组件是什么Android四大组件有Activity,Service服务,Content Provider内容提供,BroadcastReceiver。四大组件的生命周期和简单用法activity:onCreate() -> onStart() -> onResume() -> onPause() ->onStop() -> onDetroy()Service:service 启动方式有两种,一种是通过startService()方式进行启动,另一种是通..
2020-07-03 13:27:25 351
原创 ANR,OOM,memory leak
ANR产生的原因是什么?ANR即Application Not Responding,顾名思义就是应用程序无响应。在Android中,一般情况下,四大组件均是工作在主线程中的,Android中的Activity Manager和Window Manager会随时监控应用程序的响应情况,如果因为一些耗时操作(网络请求或者IO操作)造成主线程阻塞一定时间(例如造成5s内不能响应用户事件或者BroadcastReceiver的onReceive方法执行时间超过10s),那么系统就会显示ANR对话框提示用户对
2020-07-03 13:24:20 289
原创 RecycledView源码解析
RecyclerView LayoutManager Adapter,ViewHolder,ItemDecoration这些和RecycleView使用息息相关的类到底是什么关系ItemDecoration这些和RecycleView使用息息相关的类到底是什么关系onMeasureonLayout sMinWidthField = View.class.getDeclaredField("mMinWidth"); chooseSiz...
2020-07-02 13:32:26 178
原创 Binder系统初探(一)
虽说阅读Binder的源代码是学习Binder机制的最好的方式,但是也绝不能打无准备之仗,因为Binder的相关源代码是比较枯燥无味而且比较难以理解的,如果能够辅予一些理论知识,那就更好了。闲话少说,网上关于Binder机制的资料还是不少的,这里就不想再详细写一遍了,强烈推荐下面两篇文章:Android深入浅出之Binder机制Android Binder设计与实现 – 设计篇...
2020-07-01 11:55:00 465
尚硅谷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关注的人