
Java,Android
文章平均质量分 78
醉饮千觞不知愁
名不显时心不朽,再挑灯火看文章。
展开
-
记录一次Android推流、录像踩坑过程
一般常规的打开camera后(Camera.open(int cameraId)),给相机设置预览setPreviewDisplay(SurfaceHolder holder),holder通过surfaceview获取。此方法既解决了预览问题也解决了息屏获取预览数据问题,但是此方法在MediaMuxer两种模式转换合成音视频时无法合成连续的音视频,如果合成的视频在后续还会卡在某一帧,可以把之前的视频数据队列清空,这样避免因为切换相机之前的垃圾数据导致问题,然后执行上面的步骤。原创 2024-07-12 15:36:17 · 1586 阅读 · 0 评论 -
Binder ——binder的jni注册和binder驱动
Binder的jni注册和binder驱动原创 2023-03-09 15:47:47 · 809 阅读 · 0 评论 -
编译ijkplayer步骤流程和遇到的坑
ijkplayer编译原创 2023-02-14 10:40:33 · 673 阅读 · 0 评论 -
MVX演进史
一般我们开发都会用到架构,MVC MVP MVVM,或者直接不用。1、M: Model 数据/模型:数据的获取以及对数据进行的不依赖view的操作2、V: View 视图:在不同架构中,充当的角色也不一样;xml/composable/kolin3、C/P/VM Controller/ViewModel/Presenter 逻辑:模型与视图之间的交互及数据一、不用任何架构编写代码:会导致一个文件包含所有代码,导致后面的代码越来越臃肿;这种一般适用于功能简单、需求不怎么变化...原创 2022-04-21 15:22:31 · 1963 阅读 · 0 评论 -
Java网络编程二(Java原生网络编程)
一些常见术语:说到Java原生网络编程,肯定离不开Socket。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。短连接:连接->数据传输->关闭连接传统http是无状态的,浏览器和服务器每次进行一次http请求,就奖励一次连接,但是任务结束后就中断。...原创 2022-04-20 18:39:41 · 984 阅读 · 0 评论 -
Java网络编程一
1、网络协议计算机网络是什么? 随着计算机技术发展,计算机的体积和价格都在下降,之前计算机多用于研究机构,现价段逐步进入一般的公司用于办公。原来计算机回见传输数据需要通过软盘等第三方存储介质进行转存人们需要将数据直接通通过通信线路传输,来缩短传输时间,于是计算机网络开始诞生,并逐渐发展为现在巨大的Internet。定义和分类:计算机网络的标准定义是:利用通信线路将地理上分散的、具有独立功能的计算机想 捅和通信设备按不停的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息...原创 2022-04-18 12:18:20 · 3837 阅读 · 0 评论 -
Android热修复
一、热修复:之前在插件化中讲到了如何在家插件,其实热修复也是一样的,不过我们得要把加载的热修复模块放在dexElement数组的前面1、获取当前应用的PathClassLoader2、反射获取到DexPathList属性对象pathList3、反射修改pathList的dexElement1)把补丁包patch.dex转换为Element[](path)2)获得pathList的dexElements属性(old)3)path+ol...原创 2022-04-16 14:11:14 · 505 阅读 · 0 评论 -
开原框架插件化
插件化1)插件化技术最初源于免安装运行apk的想法2)免安装的apk我们称为插件3)支持插件的APP我们称为宿主插件化解决的问题:1)APP的功能模块越来越多,体积越来越大2)模块之间的耦合度高,协同开发沟通成本越来越来3)方法数目可能超过65535,APP占用内存过大4)应用之间的相互调用插件化和组件化的区别:组件化开发就是将一个APP分成多个模块,每个模块都是一个组件,开发的过程中我们让这些组件相互依赖或者单独调试部分组件等,但是最终发布...原创 2022-04-14 17:00:32 · 2522 阅读 · 0 评论 -
开原框架组件化
1、什么是组件化,为什么需要组件化2、集成环境/组件化环境自动部署3、组件化 子模块交互方式(非ARouter版)4、组件化 子模块交互方式(ARouter版)早期的单一分层:问题1:无论分包怎么做,随着项目增大,项目失去层次感,后面的人接受很难问题2:包名约束太弱,稍有不注意,就会不同业务包直接相互调用,代码耦合度高问题3:多人开发在版本管理中,容出现代码覆盖冲突等问题1、什么是组件化,为什么需要组件化组件化的意义:不相互一来,可以互相交互,任意组合,耦合度高,自由原创 2022-04-13 15:49:18 · 298 阅读 · 0 评论 -
开源框架Retrofit
一、Retrofit是什么?准确来说,Retrofit是一个对http网络请求框架的封装,因为网络请求的本质上是OkHttp完成的,而Retrofit仅仅负责网络请求接口的封装。Retrofit的使用: Retrofit retrofit = new Retrofit.Builder() .baseUrl("www.xxx.com") .addConverterFactory(GsonConverterFactory.cre.原创 2022-04-11 15:02:02 · 1860 阅读 · 0 评论 -
开原框架GLIDE
对于图片加载框架,想必大家用的最多的应该是glide吧。那么除了glide好用之外还有什么其他的有点呢?其实glide的核心思想就是生命周期管理和图片缓存。使用:class GlideTest : AppCompatActivity() { private var URL:String = "www.xxxxx" private var iv: ImageView? = null; override fun onCreate(savedInstanceState原创 2022-04-10 20:59:09 · 1119 阅读 · 0 评论 -
开原框架OKHTTP
由Square公司贡献的一个处理网络请求的开源项目,是目前Android使用最广泛的网络框架。从Android4.4开始 HttpURLConnection的底层实现采用的是OkHttp。特点:1、支持HTPP/2并允许对同一主机的所有请求共享套接字2、如果非HTTP/2,则通过连接池减少请求延迟3、默认请求GZip压缩数据4、响应缓存,避免了重复请求的网络使用方法:private static void get(String url,OkHttpClient client)原创 2022-04-09 17:37:02 · 1501 阅读 · 0 评论 -
开原框架RxJava
RxJava想必大家都不陌生,我们先从它的设计模式了解。Rxjava的设计模式RxJava的设计模式采用的是观察者模式,但是又与我们一般的观察者模式不同,我们一般的观察者模式是这样的:RxJava观察者模式:从上图我们可以看出,RxJava是一个观察者,多个被观察者,而且观察者和被观察者之间的耦合度更低。RxJava的核心思想RxJava是怎么做到链式调用的呢,大致思想就是打包和拆包,当我们订阅后,就将我们的数据通过subscribeActual()一层层的打包,然后通.原创 2022-04-08 03:12:50 · 1530 阅读 · 0 评论 -
DVR行车记录仪与APP的直播,开发过程难点记录
最近做一个APP与行车记录仪的直播功能。 C层同事说没有后台服务器支撑,所以我之前编译好的ijkplayer的so库也就没用了。 与C层同事沟通如下: 1、JNI调用这块我自己写(不是很熟悉....呜呜) 2、根据C层的结构体,我Java这边写出对应的实体类bean 目前大致是这样的。问题点: 1、在JNI层进行回调实时流数据到Java层,代码如下: //获取流数据,里面的OnGetFram...原创 2020-09-05 17:57:19 · 2149 阅读 · 0 评论 -
java多线程以及Android多线程
一个线程笔记。Java 多线程线程和进程的区别线程和进程的本质:由CPU进行调度的并发式执行任务,多个任务被快速轮换执行,使得宏观上具有多个线程或者进程同时执行的效果。进程:在操作系统来说,一个运行的程序或者说一个动态的指令集合通常对应一个进程Process,它是系统进行资源分配和调度的一个独立单位,也是拥有系统资源的基本单位。进程是系统中独立存在的实体,它可以拥有自己独立的资源,拥有自己私有的地...转载 2018-06-10 22:13:57 · 176 阅读 · 0 评论 -
自定义一个简单的imageload
找了家新公司说要考核,考核内容就是写一个图片加载框架;不能用第三方。到这就想起之前看过的imageload框架,就试着自己搭建一个。原创 2017-12-06 17:09:36 · 224 阅读 · 0 评论 -
Java内存分配
Java内存分配浅析原创 2017-11-23 18:46:10 · 334 阅读 · 1 评论