- 博客(183)
- 资源 (47)
- 收藏
- 关注
原创 混合开发架构|Android工程集成React Native、Flutter、ReactJs
文章,介绍并记录在大前端混合架构开发中的重要细节和流程。通过在安卓原生工程中集成两大主流混合框架React Native、Flutter,以及ReactJs[Vue],集成三类模块module的架构的混合设计。并分别在这些主流技术栈的业务创作中,自己造轮子、使用新颖架构设计及核心技术去实现。并在编码过程中还会创造常用工具,沉浸式状态栏,导航栏渐变
2022-09-15 22:11:46 3944 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 801 2
原创 [email protected] 使用 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 1630
原创 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 29406 1
原创 ijkplayer 详尽编译过程
摘要对于比较热门新颖的技术,我还是比较喜欢的。尤其是短视频、直播应用的兴起,直接拉起 ffmpeg 和 ijkplayer 在技术开发界的声望。个人觉得学习一门技术,很多方面是要循序渐进,慢慢积累知识。通过前段时间对这方面进行了恶补,简单的了解一些,因此后来就对这块尝试了一下编译。不过你的“尝试”并不会很顺利,只有在不断尝试、学习、查阅、纠正和再尝试的过程中,才能有新的知识沉淀和突破。因此,这
2018-01-29 13:03:20 13297 2
原创 TS文件|declare及namespace关键字声明区别,及export异同
TS文件|declare及namespace关键字声明区别,及在两种情况下进行export异同,以及export关键字使用的必要性实例验证。
2023-07-27 12:44:32 2488
原创 安卓性能优化|离屏预加载
**问题:ActivityA跳转ActivityB,ActivityB页面布局较复杂,显示速度有待提升。**优化:ActivityA跳转到ActivityB之前,预加载ActivityB页面布局并缓存。等待到进入ActivityA时添加已缓存的布局并进行渲染显示。(且一些数据资源也可以在ActivityA预先获得并缓存后使用)
2023-03-20 14:57:29 1032 1
原创 多人协作|RecyclerView列表模块新架构设计
根据产品设计,将首页列表即将展示内容区域,以模块划分成多个。令团队开发成员分别承接不同模块进行开发,且互不影响任务开发,`模块数据结构亦可分别加载|提高渲染速度|降低渲染等待时间`。任务开发解耦,节省开发时间、开发效率翻倍。
2023-03-05 17:49:08 1216 1
原创 安卓|aar和jar打包引入流程演示
安卓平台,aar和jar打包引入全流程演示!通过对公共代码的沉淀、下沉,后打包成通用的sdk提供开发使用。
2023-02-15 12:32:49 1637
原创 混合开发框架|Flutter多引擎&dart多入口设计实现
仿照工行投资理财页面,使用Flutter实现。通过此讲述混合开发中,项目设计中,需求下如何创建多个Flutter引擎。Flutter引擎如何对应各自的dart入口,并实现每个Flutter引擎下路由切换页面。从而完成Flutter项目架构的设计搭建。
2022-10-06 19:58:19 1904
原创 混合开发架构|原生&Flutter通信
**声明双端通信协议,以MethodChannel为例。****`需求说明1`·** Native端发送信息到Flutter端,Flutter收到信息后回执。此时,Native端须再次处理Flutter端的回执信息。**`需求说明2`·** Flutter端发送信息到Native端,Native收到信息后处理。MethodChannel无回执。
2022-09-29 17:17:47 758
原创 混合开发架构|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 680
原创 混合开发架构|搭建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 1581
原创 Java链表|头指针和虚拟头结点的区别
Java语言单向链表环境下,头指针和虚拟头结点在使用上有何区别?头指针指向空(即Node head = null),不存在的节点,此时链表为空;虚拟头节点是实际存在的,只不过它存放的元素是空,指向的下一个节点也是空。一旦设立了虚拟头节点,整个链表中所有的节点都会有1个前驱节点,这样一来,我们在任意位置执行增、删、改、查都将变得简单且操作统一。如果没有设置虚拟头结点而是使用头指针,则须要if-else逻辑判空的操作。.........
2022-07-07 20:08:44 1024
原创 字节码插桩(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 671
原创 Retrofit执行原理详解
Retrofit执行原理就是,通过执行内部方法create作为接口请求的起始。进入通过执行动态代理生成接口对象,调用接口对象方法并回调动态代理的invoke方法。在回调invoke方法过程中,会解析接口对象方法的注解、方法参数注解、方法返回值类型并将解析内容封装成对象。待执行到ServiceMethod.invoke()时,Call对象执行同步/异步请求,使得OkHttp的拦截器通过chain.proceed()传入request对象(通过已解析的注解内容所生成),然后执行最终的接口数据请求,并返回响应报文
2022-04-17 16:10:22 1715
原创 文化袁探索专栏——线程池执行原理|线程复用|线程回收
线程池执行原理:ThreadPoolExecutor通过execute方法提交一个Runnable任务。若线程池在运行中RUNNING (反之,提交任务被拒绝,任务结束),则判断当前已创建线程数是否大于核心线程数?小于,则通过addWorker方法将Runable任务包装成Worker添加到任务队列HashSet并执行。大于,则判断阻塞队列是否已满?未满,则通过workQueue.offer将任务添加到阻塞队列,等待工作线程获得后执行。已满,会判断当前已创建线程数是否大于最大线程数?。。。.........
2022-04-12 12:40:32 1992
原创 EventBus执行原理详解
EventBus发送事件原理是,subscriptionsByEventType通过事件类型EventType.class获取到订阅方法包装类List集合。然后通过postToSubscription方法,在方法中匹配发送事件的线程模式threadMode,例如匹配到主线程时,会直接通过反射调用订阅方法subscription.subscriberMethod.method.invoke(subscription.subscriber, event)实现事件的发布-订阅执行。......
2022-03-30 16:47:06 8267
原创 详解ThreadLocal
Thread存储线程独有的变量(存储多个变量(值)时,可以创建多个ThreadLocal用来存储),以供在整个线程存活过程中取用。这种能力由ThreadLocal中的ThreadLocalMap实现。Thread在存储自己独有变量时,ThreadLocal实例在该Thread环境内使用set方法实现变量(值)存储。(继续探究原理)实际是静态内部类ThreadLocalMap将该变量(值)以key=ThreadLocal实例,value=变量(值)的键值对对象Entry形式存储到了ThreadLocalMap
2022-03-24 14:33:44 2659
原创 文化袁探索专栏——Activity|Application启动流程
分析Launcher进程启动流程+时序流程图,activity启动流程+时序流程图,并比较launcher进程、Application启动和activity启动流程的区别。
2022-03-18 11:37:02 3188
原创 文化袁探索专栏——事件分发机制
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——React Native启动流程用户点击屏幕,点击事件会在ViewR
2022-03-18 09:50:43 2943
原创 文化袁探索专栏——自定义View实现细节
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——React Native启动流程这里介绍以继承布局实现方式,来探索
2022-03-04 16:45:43 353
原创 文化袁探索专栏——React Native启动流程
ReactNative启动流程|Android如何向RN传递初始参数props?从原生Android转入ReactNative的第一个React.Component,在该Component中可以通过this.props获取到原生安卓传递的参数对象。该如何实现?通过startReactApplication重载方法中第三个参数Bundle来实现。在RN中可以获取到由原生传入的该Bundle对象。...
2022-03-03 12:45:43 2486
原创 文化袁探索专栏——消息分发机制
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——...
2022-03-02 12:44:32 2020
原创 文化袁探索专栏——Launcher进程启动流程
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——Handler消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程’VS’APP进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——关于Launcher进程启动流程在研究过程中想到了,
2022-03-01 19:31:30 1043
原创 文化袁探索专栏——Activity、Window和View三者间关系
文化袁探索专栏——Activity、Window和View三者间关系文化袁探索专栏——View三大流程#Measure文化袁探索专栏——View三大流程#Layout文化袁探索专栏——Handler消息分发机制文化袁探索专栏——事件分发机制文化袁探索专栏——Launcher进程启动流程文化袁探索专栏——Activity启动流程文化袁探索专栏——APP进程启动流程文化袁探索专栏——自定义View实现细节文化袁探索专栏——线程安全文化袁探索专栏——...............
2022-03-01 14:46:20 1956
原创 自定义View核心逻辑+算法[城市导航]
城市导航城市导航控件,是结合事件分发机制及功能需求,来实现绘制出的自定义View。当在左侧城市列表页面滑动浏览时,右侧导航省、直辖市列表会跟随联动,并根据左侧滑动区间显示选中状态。右侧通过手势滑动,左侧会有View提示及城市列表联动。事件消费,处理手势override fun onTouchEvent(event: MotionEvent?): Boolean { event?.let { when(it.action) { .
2021-08-13 11:08:41 231
原创 举例呈现事件分发机制+源码分析调用关系
事件分发机制事件分发流程事件分发流程创建一个页面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 233
原创 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 227
原创 Dart语言同Java、Javascript语法糖区分比较
Google的Dart语言,学习起来还是比较亲和的。初学时为快速掌握其语言的里灵活使用,在此同Java、Javascript语法糖比较区分使用。
2021-01-18 11:43:46 777 2
原创 Vue|自定义组件库组件“前缀“咋定义?
自定义组件库组件"前缀",咋定义?假如我自己个写一个组件库,怎么自定义自己的前组件前缀名。如:我自定义一个Button按钮,要让ta带上我自定义的特色,成为这样 。
2020-10-17 22:12:31 2130
原创 Vue|directive自定义指令咋个用?
vue中有很多豫定义的绑定指令,v-modle、v-onlick和v-bind等。如果咱需要自己的指令,该如何实现?这个问题就是当下要研究的方向 ~
2020-07-19 23:02:37 556
原创 Vue|Vue.extend构造器是个啥?
vue.extend()方法其实是vue的一个构造器,继承自vue。知道了它的涵义,怎么应用更是我们所关注和关心的问题。因此对extend它的应用,这里着重从3个方面去介绍。1, 开源组件库mint-ui中的应用;2, 本地vue工程中程序实现;3, 总结extend的主要应用方向;...
2020-07-19 22:47:04 948
原创 Vue|VNode、elm、context、el是个啥?
vue越来越熟练,但是一些基础的概念却渐渐模糊。模糊中又会变得自我怀疑,然后重新梳理,重新认识、深入了解 ~ VNode、elm、context、el ~他们是个啥,担任着什么样子的角色 ?
2020-07-18 12:18:09 4804 1
原创 Vue|mixins混入咋个用?
官方原话:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。这里先通过自己写的vue代码对该混入[mixins] 进行功能验证,然后通过elment-ui源码对该功能的易用性进行再次吹捧 ~本地代码案例局部混入在Ban-Acc-Transfer-c.vue 中的<script> 内定义要混入的对象[要混入的内容必须是对象]要混入的对象中有,.
2020-07-04 20:35:32 1005
原创 Vue|自定义业务组件输入框
学习的过程,必定是要挑战一些复杂的页面和组件的。本来是想着写一个小demo,以提高自己的编码水平。谁知看到实现的效果之后,还是觉得有分享的价值的。并且该业务组件,在金融app中使用率应该是极高的。通过git图描述以下该自定义业务组件的功能要求:初始进入该页面时,输入框获取焦点。输入转账金额7876543,在输入框下方会有对应金额繁体字 柒佰捌拾柒万陆仟伍佰肆拾叁元整 与之匹配。且过万的金额汉字会呈现红色。若在输入框外任意位置点击使输入框失去焦点,输入的金额数字,会以一种金额的样式呈现即 7,876,5.
2020-07-02 19:56:30 1654 2
原创 Vue|怎么自定义组件?
初学vue已近3个周,至此开发技能已满足。从eggjs 到 vue 再到 scss,这个过程需要总结和分享。深度学习需要从这里点点滴滴的开始 ~以上截图是,刚为内容分享使用vue所画的页面。看效果,与原图相比逼真度——真假难分接下来总结方向,vue中如何自定义组件?如何使用自定义组件?...
2020-06-30 18:12:05 2065
原创 工程初始化:报错... ... this web application instance has been stopped already
报错-触发现象 文字描述:`·INFO: Illegal access: this web application instance has been stopped already . Could not load cn.com.infosec.IDCard.authapi.Sys...·`
2020-04-26 11:11:48 751
可设置侧滑左右不同宽度的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关注的人