- 博客(186)
- 资源 (47)
- 收藏
- 关注

原创 鸿蒙「TaskPool|Worker」多线程并发使用详解,这一篇足够!
CPU密集型任务,说白了是计算型耗时任务;I/O密集型任务,说白了是读写型耗时任务;官方文档重点介绍了这两种基于多线程并发机制处理任务类型,我们是要深度思考下的?!「很有意义」,是否已经包含且指明了我们使用「TaskPool/Worker」来解决项目问题的方案呢?对Worker以及TaskPool的使用详解,个人准备以一种特别的角度来详述。从我个人初始接触及学习研究的视角,针对 `如何选用`、`如何创建`、`如何使用`、`注意事项`和`条件限制` 多个方面,全面剖析。
2024-08-15 10:55:46
3232
1

原创 浅谈ArkTS/ArkUI组件开发
本篇文章将从一个移动开发思维的维度出发,浅谈ArkTS组件开发的基础问题,比如状态管理、装饰器、属性传递、自定义构建函数、插槽、条件渲染,模块引用和路由跳转等。
2024-08-01 15:38:40
1652
1

原创 混合开发架构|Android工程集成React Native、Flutter、ReactJs
文章,介绍并记录在大前端混合架构开发中的重要细节和流程。通过在安卓原生工程中集成两大主流混合框架React Native、Flutter,以及ReactJs[Vue],集成三类模块module的架构的混合设计。并分别在这些主流技术栈的业务创作中,自己造轮子、使用新颖架构设计及核心技术去实现。并在编码过程中还会创造常用工具,沉浸式状态栏,导航栏渐变
2022-09-15 22:11:46
4301
3

原创 架构演进|研究mvp到mvvm(传统架构mvvm和Jetpack下的区别)
探究MVP、MVVM架构实现方案,MVP如何向MVVM演进。以及在传统MVVM实现基础上如何实现的etpack组件下的MVVM架构。此架构相比传统架构又有何优缺点。Jetpack下的新架构,使用组件LiveData、ViewModel可关联宿主生命周期(有效避免空指针)。使用ViewModel组件,又能有效防止页面数据由于内存不足等非正常原因导致的数据丢失。若同时基于Databinding,此时Activity和Fragment只关注UI逻辑和用户的交互即可,数据绑定则交给Databinding!.....
2022-06-16 20:52:09
889
2

原创 react-native@0.61.5 使用 Typescript 撸一个APP
使用Typescript手撸一个react-native app;配置react-native 使用Typescript语言的路由react-navigation;TypeScript & ReactNative使用Navigation实现页面跳转;error: react-native: command not found,Error: ‘createStackNavigator()’ has been moved to ‘react-navigation-stack‘
2020-03-14 10:46:42
1767

原创 FFmpeg 详尽编译过程
内容摘要准备linux系统 ubuntu14.04安装 git安装 vim(vimcdoc-1.5.0.tar.gz)安装 jdk(jdk-8u151-linux-x64.tar.gz)安装 ndk(android-ndk-r10e-linux-x86_64.bin)配置jdk、sdk和ndk环境FFmpeg 编译问题处理将已编译的FFmpeg 移植到 android stu...
2018-02-08 10:32:26
29950
2

原创 ijkplayer 详尽编译过程
摘要对于比较热门新颖的技术,我还是比较喜欢的。尤其是短视频、直播应用的兴起,直接拉起 ffmpeg 和 ijkplayer 在技术开发界的声望。个人觉得学习一门技术,很多方面是要循序渐进,慢慢积累知识。通过前段时间对这方面进行了恶补,简单的了解一些,因此后来就对这块尝试了一下编译。不过你的“尝试”并不会很顺利,只有在不断尝试、学习、查阅、纠正和再尝试的过程中,才能有新的知识沉淀和突破。因此,这
2018-01-29 13:03:20
13447
2
原创 TS文件|declare及namespace关键字声明区别,及export异同
TS文件|declare及namespace关键字声明区别,及在两种情况下进行export异同,以及export关键字使用的必要性实例验证。
2023-07-27 12:44:32
4321
原创 安卓性能优化|离屏预加载
**问题:ActivityA跳转ActivityB,ActivityB页面布局较复杂,显示速度有待提升。**优化:ActivityA跳转到ActivityB之前,预加载ActivityB页面布局并缓存。等待到进入ActivityA时添加已缓存的布局并进行渲染显示。(且一些数据资源也可以在ActivityA预先获得并缓存后使用)
2023-03-20 14:57:29
1397
1
原创 多人协作|RecyclerView列表模块新架构设计
根据产品设计,将首页列表即将展示内容区域,以模块划分成多个。令团队开发成员分别承接不同模块进行开发,且互不影响任务开发,`模块数据结构亦可分别加载|提高渲染速度|降低渲染等待时间`。任务开发解耦,节省开发时间、开发效率翻倍。
2023-03-05 17:49:08
1303
1
原创 安卓|aar和jar打包引入流程演示
安卓平台,aar和jar打包引入全流程演示!通过对公共代码的沉淀、下沉,后打包成通用的sdk提供开发使用。
2023-02-15 12:32:49
2218
原创 混合开发框架|Flutter多引擎&dart多入口设计实现
仿照工行投资理财页面,使用Flutter实现。通过此讲述混合开发中,项目设计中,需求下如何创建多个Flutter引擎。Flutter引擎如何对应各自的dart入口,并实现每个Flutter引擎下路由切换页面。从而完成Flutter项目架构的设计搭建。
2022-10-06 19:58:19
2257
原创 混合开发架构|原生&Flutter通信
**声明双端通信协议,以MethodChannel为例。****`需求说明1`·** Native端发送信息到Flutter端,Flutter收到信息后回执。此时,Native端须再次处理Flutter端的回执信息。**`需求说明2`·** Flutter端发送信息到Native端,Native收到信息后处理。MethodChannel无回执。
2022-09-29 17:17:47
885
原创 混合开发架构|ReactJs开发全流程|Modern|MobX|Route|axios
混合开发架构|ReactJs开发全流程|MobX|Route|Modern|axios。并通过Nginx服务分析解决页面白屏问题——ReactJs项目部署白屏,无法加载静态资源等问题。白屏、错误`Failed to load resource: net::ERR_FILE_NOT_FOUND`。
2022-08-26 18:09:46
802
原创 混合开发架构|搭建Android集成Flutter3.0.1
报错:一、this version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 4.1 or newer.二、Caused by: java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$
2022-08-22 12:51:41
1721
原创 Java链表|头指针和虚拟头结点的区别
Java语言单向链表环境下,头指针和虚拟头结点在使用上有何区别?头指针指向空(即Node head = null),不存在的节点,此时链表为空;虚拟头节点是实际存在的,只不过它存放的元素是空,指向的下一个节点也是空。一旦设立了虚拟头节点,整个链表中所有的节点都会有1个前驱节点,这样一来,我们在任意位置执行增、删、改、查都将变得简单且操作统一。如果没有设置虚拟头结点而是使用头指针,则须要if-else逻辑判空的操作。.........
2022-07-07 20:08:44
1255
原创 字节码插桩(javassist)之插入代码块|IOC框架(Hilt)之对象注入~研究
字节码插桩(javassist)之插入代码块|IOC框架(Hilt)之对象注入新版本AS下报错:Error resolving plugin [id: 'com.android.application', version: '7.2.0', apply: false]> Plugin request for plugin already on the classpath must not include a version......
2022-05-21 18:10:07
797
原创 Retrofit执行原理详解
Retrofit执行原理就是,通过执行内部方法create作为接口请求的起始。进入通过执行动态代理生成接口对象,调用接口对象方法并回调动态代理的invoke方法。在回调invoke方法过程中,会解析接口对象方法的注解、方法参数注解、方法返回值类型并将解析内容封装成对象。待执行到ServiceMethod.invoke()时,Call对象执行同步/异步请求,使得OkHttp的拦截器通过chain.proceed()传入request对象(通过已解析的注解内容所生成),然后执行最终的接口数据请求,并返回响应报文
2022-04-17 16:10:22
1797
原创 文化袁探索专栏——线程池执行原理|线程复用|线程回收
线程池执行原理:ThreadPoolExecutor通过execute方法提交一个Runnable任务。若线程池在运行中RUNNING (反之,提交任务被拒绝,任务结束),则判断当前已创建线程数是否大于核心线程数?小于,则通过addWorker方法将Runable任务包装成Worker添加到任务队列HashSet并执行。大于,则判断阻塞队列是否已满?未满,则通过workQueue.offer将任务添加到阻塞队列,等待工作线程获得后执行。已满,会判断当前已创建线程数是否大于最大线程数?。。。.........
2022-04-12 12:40:32
2071
原创 EventBus执行原理详解
EventBus发送事件原理是,subscriptionsByEventType通过事件类型EventType.class获取到订阅方法包装类List集合。然后通过postToSubscription方法,在方法中匹配发送事件的线程模式threadMode,例如匹配到主线程时,会直接通过反射调用订阅方法subscription.subscriberMethod.method.invoke(subscription.subscriber, event)实现事件的发布-订阅执行。......
2022-03-30 16:47:06
8897
原创 详解ThreadLocal
Thread存储线程独有的变量(存储多个变量(值)时,可以创建多个ThreadLocal用来存储),以供在整个线程存活过程中取用。这种能力由ThreadLocal中的ThreadLocalMap实现。Thread在存储自己独有变量时,ThreadLocal实例在该Thread环境内使用set方法实现变量(值)存储。(继续探究原理)实际是静态内部类ThreadLocalMap将该变量(值)以key=ThreadLocal实例,value=变量(值)的键值对对象Entry形式存储到了ThreadLocalMap
2022-03-24 14:33:44
4200
原创 文化袁探索专栏——Activity|Application启动流程
分析Launcher进程启动流程+时序流程图,activity启动流程+时序流程图,并比较launcher进程、Application启动和activity启动流程的区别。
2022-03-18 11:37:02
3297
原创 文化袁探索专栏——事件分发机制
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——React Native启动流程用户点击屏幕,点击事件会在ViewR
2022-03-18 09:50:43
3017
原创 文化袁探索专栏——自定义View实现细节
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——React Native启动流程这里介绍以继承布局实现方式,来探索
2022-03-04 16:45:43
442
原创 文化袁探索专栏——React Native启动流程
ReactNative启动流程|Android如何向RN传递初始参数props?从原生Android转入ReactNative的第一个React.Component,在该Component中可以通过this.props获取到原生安卓传递的参数对象。该如何实现?通过startReactApplication重载方法中第三个参数Bundle来实现。在RN中可以获取到由原生传入的该Bundle对象。...
2022-03-03 12:45:43
2607
原创 文化袁探索专栏——消息分发机制
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——...
2022-03-02 12:44:32
2104
原创 文化袁探索专栏——Launcher进程启动流程
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——Handler消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——关于Launcher进程启动流程在研究过程中想到了,
2022-03-01 19:31:30
1140
原创 文化袁探索专栏——Activity、Window和View三者间关系
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——Handler消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——APP进程启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——...............
2022-03-01 14:46:20
2029
原创 自定义View核心逻辑+算法[城市导航]
城市导航城市导航控件,是结合事件分发机制及功能需求,来实现绘制出的自定义View。当在左侧城市列表页面滑动浏览时,右侧导航省、直辖市列表会跟随联动,并根据左侧滑动区间显示选中状态。右侧通过手势滑动,左侧会有View提示及城市列表联动。事件消费,处理手势override fun onTouchEvent(event: MotionEvent?): Boolean { event?.let { when(it.action) { .
2021-08-13 11:08:41
304
原创 举例呈现事件分发机制+源码分析调用关系
事件分发机制事件分发流程事件分发流程创建一个页面TouchInterceptAty.kt,且在布局中以自定义CGroup.kt作为布局容器。容器中分别通过红圈1-2-3,三种清况将控件CView.kt、CTextView.kt、CButton.kt、放置在容器中。/** TouchInterceptAty.kt Activity页面 */class TouchInterceptAty : AppCompatActivity(){ ... ... override fun d
2021-08-11 12:35:38
317
原创 Kotlin添加窗口报错
Kotlin添加窗口报错创建窗口代码Process: 包名, PID: 27541android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? at android.view.ViewRootImpl.setView(ViewRootImpl.java:980) at android.view.
2021-07-12 11:55:39
302
原创 Dart语言同Java、Javascript语法糖区分比较
Google的Dart语言,学习起来还是比较亲和的。初学时为快速掌握其语言的里灵活使用,在此同Java、Javascript语法糖比较区分使用。
2021-01-18 11:43:46
944
2
原创 Vue|自定义组件库组件“前缀“咋定义?
自定义组件库组件"前缀",咋定义?假如我自己个写一个组件库,怎么自定义自己的前组件前缀名。如:我自定义一个Button按钮,要让ta带上我自定义的特色,成为这样 。
2020-10-17 22:12:31
2497
原创 Vue|directive自定义指令咋个用?
vue中有很多豫定义的绑定指令,v-modle、v-onlick和v-bind等。如果咱需要自己的指令,该如何实现?这个问题就是当下要研究的方向 ~
2020-07-19 23:02:37
665
原创 Vue|Vue.extend构造器是个啥?
vue.extend()方法其实是vue的一个构造器,继承自vue。知道了它的涵义,怎么应用更是我们所关注和关心的问题。因此对extend它的应用,这里着重从3个方面去介绍。1, 开源组件库mint-ui中的应用;2, 本地vue工程中程序实现;3, 总结extend的主要应用方向;...
2020-07-19 22:47:04
1197
原创 Vue|VNode、elm、context、el是个啥?
vue越来越熟练,但是一些基础的概念却渐渐模糊。模糊中又会变得自我怀疑,然后重新梳理,重新认识、深入了解 ~ VNode、elm、context、el ~他们是个啥,担任着什么样子的角色 ?
2020-07-18 12:18:09
5453
1
原创 Vue|mixins混入咋个用?
官方原话:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。这里先通过自己写的vue代码对该混入[mixins] 进行功能验证,然后通过elment-ui源码对该功能的易用性进行再次吹捧 ~本地代码案例局部混入在Ban-Acc-Transfer-c.vue 中的<script> 内定义要混入的对象[要混入的内容必须是对象]要混入的对象中有,.
2020-07-04 20:35:32
1206
可设置侧滑左右不同宽度的demo
2014-09-03
经典侧滑菜单Demo.zip
2014-08-26
侧滑菜单.zip
2014-07-26
FragmentTabsDemo.zip
2014-07-25
xUltimate-9patch
2014-07-21
多线程断点续传下载
2014-05-25
fragment的使用
2014-04-27
架构演进|研究mvp到mvvm源码
2022-06-20
MAT-集成包含两个版本的MemoryAnalyzer.7z
2021-12-07
nginx-tomcat.zip
2021-07-24
CarglassApp20200317.7z
2020-03-17
CarglassApp20200316.7z
2020-03-16
RN-ModX.zip
2019-08-05
re-sign.jar+junit4.jar+robotium.jar
2018-09-29
spring-aop-annotation-log-all
2018-07-28
react-native
2018-06-03
ReactNativeLocation.zip
2018-05-23
ScrollView+listView指定坐标
2014-09-25
下拉刷新,上拉加载更多.zip
2014-09-17
感重力旋转屏幕
2014-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人