自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LittleMonkey的博客

技术成就未来

  • 博客(39)
  • 收藏
  • 关注

转载 手撕算法排序+查找

https://www.cnblogs.com/onepixel/articles/7674659.htmlhttp://www.cnblogs.com/eniac12/p/5329396.htmlBubble Sort#include <stdio.h>// 分类 -------------- 内部比较排序// 数据结构 ---------- 数组// 最差时间复杂度 ---...

2018-05-17 14:59:17 949

原创 mmap 以及MMKV 学习 (一)

mmapmmap 是内存映射的缩写(memory map), 什么是内存映射?这是一个来自linux 系统的概念。其原理如下:https://blog.csdn.net/qq_33883085/article/details/88430087

2021-02-07 12:22:01 431

原创 美国纽约摄影学院摄影教材 学习笔记1

美国纽约摄影学院摄影教材 学习笔记1拍摄时的灵魂三问拍摄时的灵魂三问这张照片的主题是什么?它表达的普遍性意义是什么?拍摄者如何把注意力集中到被拍摄主题身上拍摄者在简化画面方面做了哪些优化,没做哪些优化?拿起相机拍摄的时候,心中想清楚上面几个问题之后在去拍摄,确保自己拍出来的照片主题鲜明...

2021-02-02 13:59:37 708

原创 H264 专题

H264 码流结构:首先抛一个经典的264码流结构概念GOP视频序列 由一个I、多个P、B帧以及SPS、PPSStart Code {0x00, 0x00, 0x00, 0x03} 或 {0x00, 0x00, 0x03},在一些h264码流中一帧的开始的StartCode 是0003;Nalu HeaderNalu TypeIPBSPSPPSSliceSlice TypeSlice Header...

2020-07-01 10:36:25 433

原创 Rxjava学习(2)-Subject

https://www.jianshu.com/p/f016f707a7401.AsyncSubjectAsyncSubject只会发射来自原始Observable的最后一个数据。如果原始的Observable因为发生了错误而终止,AsyncSubject将不会发射任何数据,但是会向Observer传递一个异常通知。只发射onComplete()之前的一个事件给所有Observer,技术O...

2020-03-31 14:57:43 235

原创 Kotlin 协程

下面这个博客队协程的讲解非常清楚https://kaixue.io/kotlin-coroutines-1/kotlin 官方中文资料https://www.kotlincn.net/docs/reference/协程的概念 本质上,协程是轻量级的线程。是一套线程框架,是对线程中执行的代码顺序的管理,协程中的代码依然在线程中运行;协程设计的初衷是为了解决并发问题,...

2020-03-26 12:54:00 458 1

原创 RxJava 学习笔记(1)

创建一个被观察者,并发送事件,发送的事件不可以超过10个以上。指定被观察者的线程,要注意的时,如果多次调用此方法,只有第一次有效。RxJava的Git地址https://github.com/ReactiveX/RxAndroid什么是RxJava响应式编程的一个实现什么是编程范式?编程是为了解决问题,而解决问题可以有多种视角和思路,其中具有普适性的模式被归结为范式。我们...

2019-08-25 23:58:12 134

原创 AspectJ在数据埋点方面的应用

按照文档还是和轻松的参考:https://www.jianshu.com/p/f577aec99e17https://github.com/HujiangTechnology/gradle_plugin_android_aspectjxaspectjtools版本https://mvnrepository.com/artifact/org.aspectj/aspectjrt...

2019-07-28 23:50:34 327

原创 Android studio 基于Cmake调用第三方so库 (非JNI规范)

需求:第三方so库,和头文件,但头文件非JNI格式,无法实现JNI的静态注册调用实现工具:CMake第一步:在SDKTools 里下载CMake;第二步:配置app的build.gradledefaultconfig标签里添加 externalNativeBuild{ cmake{ cppFlags "" ...

2019-07-23 21:27:37 1589

转载 App隐私政策网址(URL)

本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。但本软件将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本软件不会将这些信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本...

2019-06-19 15:19:50 7778

原创 qt 应用程序图标设置、程序打包

1 设置title和title图标1)设置title名称 QApplication a(argc, argv); Widget w; w.setWindowTitle("爬壁机器人操控端");2)设置title图标通过方式qrc设置图像首先准备png图像 name1.png,将图片保存在工程文件下 创建文件夹 imags 图片存放在文件夹下./image...

2019-03-13 14:02:55 670

转载 内存泄漏,内存溢出,ANR

 Android内存泄漏的检测流程、捕捉以及分析通常内存泄漏的隐藏性质比较强,不同于异常导致的程序Crash,在异常导致的Crash中,我们能够及时的发现程序问题的存在,并通过log日志定位到问题所在的具体位置,然后及时进行解决,而内存泄漏则不同,在APP中存在内存泄漏的情况下,用户在低频率短时间的使用中,并不能察觉到有什么异样,反之,随着使用频率的提高和使用时长的增加,内存泄漏就会一直慢...

2018-07-26 11:00:16 888

原创 常见加解密算法及opensll的使用

上篇写了关于jni的使用blog,本文主要在于使用c++实现一些加解密算法,然后供android开发使用;首先补充加解密的知识及基本概念对称加密VS非对称加密、公钥VS私钥、签名/验证、信息摘要 公钥加密数据,然后私钥解密的情况被称为加密解密,私钥加密数据,公钥解密一般被称为签名和验证签名SHA、MD5 为信息摘要算法,实应用过程中,因为需要加密的数据可能会很大,进行加密费时费...

2018-07-25 19:28:29 729

翻译 高版本AS JNI 的 Demo

今天是在国泰实习的第二天,师傅给我安排了小任务-账号本地加密以及自定义键盘,其中加密算法要用C/C++实现。当然我第一反应就是先做个NDK的demo,好多博客都是低版本AS中使用NDK的案例,试了下没一个成功的,可能是我AS版本太高的原因吧,编译过程个种报错,头大!!!大体归结为, CMAKE,文件路径,库加载不到 等问题;在不懈的搜索下发现了一篇不错的文章:https://blo...

2018-07-10 14:25:34 236

转载 https 工作流程

注意,为了更好的区分明文和密文,用【AA】代表AA被加密,AA 代表正常未加密client 发出请求server 收到请求,并自己生成一对密钥,即 公钥S 和 私钥Sserver 把生成的 公钥S 传递给 client (除了 公钥S ,还有很多额外信息)client 收到 公钥S 后进行判断,若无效,弹出警告,否则生成一串随机数,我们称之为 私钥C ,然后 client 用 server 传过来...

2018-06-13 13:03:07 408

原创 XML的DOM SAX JDOM DOM4J 四种解析方式对比

DOM是与平台无关,其他平台也可以使用,而其他三种是java平台的解析方式SAX是基于事件驱动的解析 重写 onsatrtdocument onenddocument 等方法,在这些方法中处理文档,一个节点一个节点的处理DOM是一次性解析完一整个XML文件,因此需要将整个XML文件加载到内存中,如果XML文件过大时容易导致OOMDOM优点:    形成了树结构,直观好理解,代码更易编写    解析...

2018-06-04 09:23:06 279

转载 Binder机制

https://blog.csdn.net/ccjhdopc/article/details/50829082这篇博文写的很好 需要多读几遍,读了两遍才懂了一点点 ,有时间需要再去仔细推敲下面是从其中再出的一些比较关键的信息!为什么消息队列和管道的数据传输需要经过2次内存拷贝呢? 首先,数据先从发送方的缓存区(即,Linux中的用户存储空间)拷贝到内核开辟的缓存区(即,Linux中的内核存储空间)...

2018-05-30 21:26:42 319

转载 AndroidO(8.0) 和 Android P(9.0)

大早上躺床上就索性百度了下p和o 发现百度百科的说明还是很简洁易懂的2017年8月22日,谷歌正式发布了Android8.0的正式版,其正式名称为:Android Oreo(奥利奥)  。奥利奥版安卓的聚焦重点是电池续航能力、速度和安全,让用户更好地控制各种应用程序,加大了对App在后台操作的限制。这种限制在一定程度上延长了安卓机在“睡眠”(Doze)模式下的电池的续航能力,它让不在使用的App进...

2018-05-30 09:47:14 25368 2

原创 僵尸线程

在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等.但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等),直到父进程通过wait / waitpid来取时才释放,此时该进程便成...

2018-05-29 21:10:37 4775 2

原创 UI优化/内存优化/ 大图加载/多图加载/ANR/OOM/GC/Http/Https/ListView优化/fragment/binder底层实现/Service保活/进程

待补充

2018-05-24 16:00:22 429

转载 MVC and MVP

MVCMVC 1.M层:适合做一些业务逻辑处理,比如数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理。将M层的业务逻辑抽象成接口,接口的不同实现表示不同的业务,但在调用时却是统一的形式。2.V层:应用层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果。3.C层:在Android中,Activity处理用户交互问题,因此可以认为Activity是控制器,...

2018-05-18 10:57:31 149

原创 进程间通信同步方法(互斥)

进程间通信(Inter Process Communication, IPC)要解决三个问题:(1)进程间如何传递信息(2)确保两个或更多进程在关键活动中不会出现交叉(3)有协作关系的进程的时序问题竞争条件(race condition)定义:多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序。互斥(mutual exclusion)定义:对于个共享数据,同一时刻只有一个进程操作他。临...

2018-05-17 20:20:29 3357

原创 Service 跨进程通信

https://blog.csdn.net/aa841538513/article/details/52182848Service是四大组件之一(一定有系统级的支持!!!)Service 有两种启动方式startservice和bindservicebindService可以实现Activity和Service 的交互;Service在没有被全部解绑是不太可能被回收的;startService:o...

2018-05-17 16:54:27 606

转载 共享内存的实现linux和Java

https://blog.csdn.net/kobejayandy/article/details/44633611https://blog.csdn.net/wan_exe/article/details/56484664共享内存IPC机制的关键,对于数据共享、系统快速查询、动态配置、减少资源耗费等均有独到的优点。对应UNIX系统来说,共享内存分为一般共享内存和映像文件共享内存两种,而对应Win...

2018-05-17 16:51:11 1831

原创 http 学习 摘要

最近疯狂学习,脑子有点撑不住!请求报文构成响应报文构成getpostputheaddeleteOPTIONSTRACECONNECT200 ok204 No Content 请求处理成功 但没有资源可返回206 请求部分内容,并且请求成功301 Moved Permanently 请求的资源已经被分配了新的URI 以后应使用资源现在所指的URI302 Found 临时重定向 请求的资源...

2018-05-17 14:29:54 178

转载 HashMap

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...

2018-05-17 14:29:42 129

转载 Iterator、fast-fail 机制

Iterator遍历时不可以删除集合中的元素问题在使用Iterator的时候禁止对所遍历的容器进行改变其大小结构的操作。例如: 在使用Iterator进行迭代时,如果对集合进行了add、remove操作就会出现ConcurrentModificationException异常。因为在你迭代之前,迭代器已经被通过list.itertor()创建出来了,如果在迭代的过程中,又对list进行了改变其容器...

2018-05-17 14:29:32 545

转载 Vector和ArrayList的区别

1. Vector & ArrayList 1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍(当capacityIncreme...

2018-05-17 14:29:23 292

转载 容器汇总

Collection:1. AbstractCollection<E> Class AbstractCollection is an abstract implementation of the Collection interface. 2. AbstractList<E> AbstractList is an abstract implementation of the...

2018-05-17 14:29:13 119

转载 Hash算法和hash冲突 collision

散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是依据关键码值(Key value)而直接进行訪问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来訪问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。比方...

2018-05-17 14:28:48 479

原创 类加载器和反射机制

加载->连接->初始化每一个类都是Class类的一个对实例对象类加载器:Bootstrap ClassLoader: 根类加载器 加载核心类库Extension ClassLoader:扩展类加载器加载JRE的扩展目录(%JAVA_HOME%/jre/lib/ext等)System ClassLoader:系统类加载器加载来自java命令的-classpath选项、java.class...

2018-05-17 14:28:35 332

转载 onSaveInstanceState ,onRestoreInstanceState何时执行?

Android为我们提供了onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)用于保存和恢复数据。一、onSaveInstanceState(Bundle outState)在什么时机会被调用呢? 答案是当activity有可能被系统回收的情况下,而且是在onStop()之前。注...

2018-05-15 15:21:46 419

转载 Android App消息推送 实现原理

https://www.jianshu.com/p/b61a49e0279f1.消息推送的实质实际上,是当服务器有新消息需推送给用户时,先发送给应用App,应用App再发送给用户2. 作用产品角度:功能需要,如:资讯类产品的新闻推送、工具类产品的公告推送等等运营角度:活动运营需要,如:电商类产品的促销活动;召回用户 / 提高活跃度等等作为开发者,不要有需求就接,应该多思考、多理解用户 / 功能的使...

2018-05-14 22:26:33 53089 1

转载 java23种设计模式

我觉得设计模式不是这么学习的,需要有一定的代码量之后才能真切明白其中的奥妙,但不得不走这个快捷径,所以只能掌握其中的一部分厚颜无耻的只会复制黏贴!https://www.cnblogs.com/malihe/p/6891920.htmljava的设计模式大体上分为三大类:创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。结构型模式(7种):适配器模式,...

2018-05-14 20:00:36 175

原创 Java些微知识点总结

一些基础的东西都懂得就不说了,主要总结一些容易出错或者遗忘的地方1数组ps1:数组也是 一种引用类型    int[] , int a[] 这两种形式都可以,但提倡使用第一种 ps2: 静态初始化 int []a =new int[] {i,j,k,l,.....};         动态初始化 int[] a =new int[length];ps3:不要用多为数组的思想考虑java的多维数组,...

2018-05-13 17:04:50 137

转载 Java Concurrent并发包 概括

Java并发包https://blog.csdn.net/Dax1n/article/details/74544299 java.util.concurrent http://www.android-doc.com/reference/java/util/concurrent/package-summary.htmlconcurrent包中几个重要容器接口和其实现类介绍...

2018-04-16 14:28:57 2677

原创 多线程、多进程通信 (java实现)

进程间通信方式1.管道(匿名管道 Pipe)//   PipedInputStream  、PipedOutputStream2.命名管道(NamedPipe/FIFO)//java 不支持?3.信号(Signal) // wait() notify() notifyall() 、管程4.消息队列(MessageQueue)5.共享内存 (SharedMemory)  //java 不支持?6.内...

2018-04-10 21:59:34 5040

原创 Qt+普通遥感手柄+Windows+Winmm

手柄为2遥感+多按钮qt使用Windows自带的库Winmm添加库和头文件.pro中添加:LIBS+=-lWinmm.h文件中添加:#include "windows.h" #include "w32api.h" #include "winuser.h" #include "mmsystem.h"主要使用JOYINFO、和JOY

2018-02-06 10:37:17 2081

原创 QT串口和多线程总结

Qt的串口个人感觉不是很好用。大体使用步骤如下:1.在.pro文件中加入 QT+=serialport2.添加头文件#include#include3.编写收发程序write和readAll 方法实现读写程序QT 读写可分为阻塞方式和非阻塞方式阻塞方式:通过查询缓冲区是否有数据waitForReadyRead(int timeout) 当缓冲区有

2018-01-04 11:21:54 18014 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除