![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 67
Android
此处一淌水
这个作者很懒,什么都没留下…
展开
-
Android 常用路径的获取
Android 常用路径的获取一些常用路径如下:路径方法权限描述应用内部存储缓存目录context.getCacheDir()无需申请权限内部使用,外部程序无法访问卸载应用时删除系统空间不足时可能会删除应用内部存储文件目录context.getFileDir()无需申请权限内部使用,外部程序无法访问。卸载应用时删除。应用内部存储数据库目录context.getDatabasePath()无需申请权限内部使用,外部程序无法访问。主要是 SQLite 数转载 2021-07-05 09:28:16 · 1359 阅读 · 0 评论 -
YUV 比例理解
红框:4:4:4,4:2:2,4:1:1 以四个像素理解如4:2:2,即四个像素中,Y(亮度)占4,Cr Cb各占2蓝框4:2:0,以八个像素理解,每个像素都有亮度,其中一行有两个Cr,一行有两个Cb如上图中所示,左侧一列,每一个小矩形是图形像素表示,黑框矩形是色度像素表示,小黑点是表示色度像素值(Cb+Cr),表示图形像素和色度像素在水平和垂直方向的比例关系。比如,4:4:0 水平方向是1/1,垂直方向是1/2,表示一个色度像素对应了两个图形像素。4:2:2 水平方向是1/2,垂直方向是1/.原创 2021-03-08 09:29:33 · 462 阅读 · 0 评论 -
webrtc-Andorid实现IM 包括文本、音视频、屏幕共享
本来是想封装一个Webrtc的库的,奈何写到一半,发现有些逻辑不对,说到底还是火候不够= =。代码就不贴了,直接看结果。服务端是就是一个简单Spring Websocket程序,用来做信令交互。待有时间再来重新封装一下,感觉移动端webrtc未来可期啊,5G时代,端对端的音视频还是很有潜力开发的。...原创 2021-01-29 15:41:56 · 535 阅读 · 4 评论 -
UDP RTP包,H264 分析
1.使用wireshark 将抓到得晚包转码为RTP1.1 如下为UDP一个包对应说明2.RTP包相关说明2.1 RTP头说明当前项目定义荷载H264的PT为98,一般情况PT=96 为H2643.H264 解析我们平时的每帧数据就是一个NAL单元,在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01分隔符,一般来说编码器编出的首帧数据为SPS与PPS,接着为I帧。上图截取的码流00 00 00 01后面,有三个值,分别是67 68 65.原创 2020-12-29 15:11:10 · 829 阅读 · 0 评论 -
Andorid利用Keystore进行 AES,RSA生成加解密,生成证书CSR文件
安卓密钥库系统1. AES1.1 生成AES并保存至KeyStore private static final String ANDROID_KEY_STORE = "AndroidKeyStore"; private static final String KEY_ALIAS = "PqSawSecret"; private static SecretKey createKeyStoreEntry() { try {原创 2020-12-10 17:31:58 · 1574 阅读 · 0 评论 -
Android Navigation 使用总结
Navigation 使用入门原创 2020-12-04 11:31:12 · 4209 阅读 · 3 评论 -
NDK开发,CMake生成自定义so包,用JNI调用so
简单了解NDK开发,先生成一个动态库,然后另一个项目调用。生成自定义自己的so包。1. 创建 ‘MakeSoLib’ Android c++项目2.编写自定义so包的方法#include <jni.h>#include <string>extern "C" std::string stringFromLib(){ return "String from Lib!";}3. 编译项目 Build-Make Project如图所示,build文件夹生成了.原创 2020-07-27 17:53:52 · 490 阅读 · 2 评论 -
Koltin协程Coroutines进阶,初步替代Rxjava
可以先看这篇入门教程Koltin协程,Coroutines入门**Rxjava就不说了,毋庸置疑很强大,但是用起来很繁琐,从大型社区的关注度可以看出也在慢慢的退出历史舞台。Rxjava中提供大量的操作符,对于初学者来说使用起来颇为复杂,下面我们来试试怎么用Coroutines来替代使用Rxjava操作符。异步回调先看看java里面,线程怎么实现的。Rxjava不做说明,请自行了解,不了解也无妨,我们有更好的解决方案public class MyThread implements Runnabl.原创 2020-07-23 10:52:39 · 917 阅读 · 0 评论 -
Android RelativeLayout 代码实现居中,目标View左右侧
阿斯顿原创 2020-07-21 14:41:47 · 1143 阅读 · 0 评论 -
AndoridStudio常用操作
快捷键Ctrl+E同时按下Ctrl+E快捷键,弹出最近打开文件列表,可以快速选择最近曾经打开的文件。Ctrl+J同时按下Ctrl和J快捷键,弹出快捷代码框。Ctrl+F12:在类中方法比较多的情况下,同时按下Ctrl和F12键可以快速查看类中所有的方法。Ctrl+Alt+T选中一块代码,同时按下Ctrl、Alt和T键,弹出“包裹”弹出框。提取局部变量:Ctrl+Alt+V提取全局变量:Ctrl+Alt+F提取方法:Shit+Alt+M查找类名Ctrl+N设置头增加新原创 2020-07-20 09:59:06 · 196 阅读 · 0 评论 -
Kotlin 常用语法
条件控制 whe when(i){ 1->doSomething() 2,3->doSomething() 4->{ doSomething() } else->doSomething() }数组写法 var intArray = arrayListOf(1,2,3) var strArray =原创 2020-07-17 17:32:08 · 280 阅读 · 0 评论 -
Android 颜色透明度转换, 实际效果
透明度十六进制100%FF95%F290%E685%D980%CC75%BF70%B365%A660%9955%8C50%8045%7340%6635%5930%4D25%4020%3315%2610%1A5%0D原创 2020-07-17 15:24:45 · 763 阅读 · 0 评论 -
Koltin协程,Coroutines入门
什么是协程?官方描述:协程通过将复杂性放入库来简化异步编程。程序的逻辑可以在协程中顺序地表达,而底层库会为我们解决其异步性。该库可以将用户代码的相关部分包装为回调、订阅相关事件、在不同线程(甚至不同机器)上调度执行,而代码则保持如同顺序执行一样简单。协程就像非常轻量级的线程。线程是由系统调度的,线程切换或线程阻塞的开销都比较大。而协程依赖于线程,但是协程挂起时不需要阻塞线程,几乎是无代价的,协程是由开发者控制的。所以协程也像用户态的线程,非常轻量级,一个线程中可以创建任意个协程。协程很重要的一点就是原创 2020-07-16 11:45:11 · 168 阅读 · 0 评论