- 博客(30)
- 资源 (4)
- 收藏
- 关注
转载 Android智能下拉刷新框架-SmartRefreshLayout
https://www.wanandroid.com/blog/show/2043
2020-10-23 20:29:33
189
转载 Android OpenGLES渲染MediaCodec解码数据
http://zengzhaowen.cn/Android%20OpenGLES%E6%B8%B2%E6%9F%93MediaCodec%E8%A7%A3%E7%A0%81%E6%95%B0%E6%8D%AE.html
2020-06-21 22:25:24
458
原创 android open failed: EACCES (Permission denied)
动态权限申请都点击允许了,还特么报错!!!最后在AndroidManifest中,添加了如下属性后就没问题了<application android:requestLegacyExternalStorage="true"
2020-06-17 12:18:52
283
转载 Android ExoPlayer播放音视频的使用指南
一、简介在安卓设备上播放视频和音乐是很受欢迎的活动。Android框架提供了MediaPlayer作为一个快速的解决方案,可以用最少的代码来播放媒体。Android还提供低级别的媒体api框架,如MediaCodec、AudioTrack和MediaDrm,可用于构建自定义媒体播放器解决方案。ExoPlayer是一款开源的应用级媒体播放器,基于Android的低级媒体API构建。本指南描述了ExoPlayer库及其使用。它是指ExoPlayer的主要演示应用程序中的代码,以提供具体的示例。该指南介绍
2020-06-02 11:33:45
4469
转载 git pull --rebase 详解
转载:https://www.cnblogs.com/wangiqngpei557/p/6056624.html有一种场景是经常发生的。大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个。然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周。在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对冲突的
2020-05-14 20:47:37
3371
原创 git HEAD~n 到底是第几个提交
总结:HEAD~n是指向前N个,例如HEAD~1是指向前1个提交, 是指当前提交的前面一个提交!以下是乔恩·勒利杰的一个例子。提交节点B和C都是提交节点A的父节点。
2020-05-14 20:24:06
463
转载 双数组Trie树(DoubleArrayTrie)Java实现
https://www.hankcs.com/program/java/%e5%8f%8c%e6%95%b0%e7%bb%84trie%e6%a0%91doublearraytriejava%e5%ae%9e%e7%8e%b0.html
2020-04-26 17:44:44
135
转载 双数组Trie树(DoubleArrayTrie)Java实现
https://www.hankcs.com/program/java/双数组trie树doublearraytriejava实现.html双数组Trie树(DoubleArrayTrie)是一种空间复杂度低的Trie树,应用于字符区间大的语言(如中文、日文等)分词领域。双数组Trie (Double-Array Trie)结构由日本人JUN-ICHI AOE于1989年提出...
2020-04-16 10:10:31
824
转载 android点击桌面App图标activity启动流程
1、点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求;2、system_server进程接收到请求后,向zygote进程发送创建进程的请求;3、Zygote进程fork出新的子进程,即App进程;4、App进程,通过Binder IPC向sytem_server进程发起attachApplicatio...
2020-03-27 15:43:23
441
转载 看懂UML类图和时序图
看懂UML类图和时序图转自:https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有了这些知识,...
2020-03-09 11:19:23
292
原创 插入排序(一次For循环)、冒泡排序、希尔排序、快速排序、归并排序
package baidu.com.lib;public class MyClass { public static void main(String[] args) { int[] arr = new int[] {8,4,6,7,9,5}; int[] arrCopy = new int[arr.length]; MergeSort...
2019-11-29 20:48:26
226
原创 vscode 编译so库,并且引用so库调试
刚刚自学接触C++,上周看了一个星期的C++ Primer,需要记忆的东西特别多!本周就IDE选择、cpp程序编译、so库引用、jni编译方面走了一遍,从C++程序编写、编译调试,引用so库走了一遍,基本还好,没碰到什么难点!1. IDE选择VsCode,只要下载几个插件就可以进行开发了: 2.在Vscode 中打开一个新建文件夹,进行程序编写,一个头文件、两个cpp...
2019-08-29 13:30:04
10229
3
原创 ThreadPoolExecutor的几个参数理解
new ThreadPoolExecutor(int coreSize,int maxSize,long time,int timeUnit,BlockingQueue<Runnable> taskQueue,ThreadFactory threadFactory):参数含义如下:coreSize:核心线程数maxSize :线程最大数time,t...
2018-08-11 13:21:10
4579
原创 TabLayout 获取Tab的宽度_解决点击Tab从头滑动问题
package com.tablayout;import android.support.design.widget.TabLayout;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import andr...
2018-07-19 11:42:38
610
原创 java 软引用、弱引用、虚引用
软引用 :用SoftReference类来标记,被软引用标记的对象,只有在内存不足的时候,GC才会回收该对象。弱引用:用WeakReference类来标记,被弱引用标记的对象,在GC时,无论内存是否充足,都会被回收掉。虚引用:用PhantomReference来标记,虚引用需要有一个与之关联的引用队列,GC回收虚引用的对象时,会将虚引用放到引用队列中,来表示该对象将要被回收。程序可以检测引...
2018-07-17 11:39:11
129
原创 java5之后创建线程池的几个API 以及区别
newCachedThreadPool();newCachedThreadPool(ThreadFactory factory);创建一个可根据需要创建新线程的线程池,但是在之前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用之前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中...
2018-07-14 11:31:18
362
原创 java 读写锁 , 官方自带示例读解,ReentrantReadWriteLock
以下示例为 java api并发库中 ReentrantReadWriteLock自带的实例,下面进行解读 class CachedData { Object data; volatile boolean cacheValid; ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); void process...
2018-07-14 11:25:59
133
原创 ArrayBlockingQueue<E> 笔记
ArrayBlockingQueue是一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素。这是一个典型的“有界缓存区”,固定大小的数组在其中保持生产者插入的元素和使用者提取的元素。一旦创建了这样的缓存区,就不能再增加其容量。试...
2018-07-14 11:24:36
275
原创 Callable Future 以及CompletionService
java5线程库中,使用Callable提交任务,可以获得任务的运行完后的一个返回值。使用线程池的submit方法提交Callable任务,submit方法将返回一个Future对象,此对象的get方法是线程阻塞的,直到任务运行结束后才会返回任务的返回值。 多个任务提交到线程池后,想要多个获取任务的运行完后的结果,可使用CompletionService类,此类可以获取按执行完顺序返回的结果。下面...
2018-07-14 11:24:00
125
原创 java 线程之间通信以及notify与notifyAll区别
jvm多个线程间的通信是通过 线程的锁、条件语句、以及wait()、notify()/notifyAll组成。下面来实现一个启用多个线程来循环的输出两个不同的语句。package com.app.thread;import javax.swing.plaf.SliderUI;/** * 看出问题来 * @author Gordon * */public class LockDemo { publi...
2018-07-14 11:23:11
461
原创 CountDownLath 倒计时器
CountDownLath,可以理解为倒计时器,是一个线程同步的辅助类,用指定的数值来初始化 倒计时器初始值(new CountDownLath(100)),调用对象的countDown的方法,将会使计时器减1,当减到0后,那么此对象会唤醒调用对象await方法所正在等待的线程,如果计数器已经为0,后续线程调用await方法的时候,会立即返回,不会阻塞。下面模拟一个跑步计数器:import jav...
2018-07-14 11:22:15
223
原创 CyclicBarrier 线程的一个辅助类,就称它为 线程等待器
CyclicBarrier是一个线程辅助类,在初始化时,指定所要等待的线程等待数,调用await方法会使线程处于等待状态,直到等待的线程数达到指定的数。下面是小实例:import java.util.Random;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import ...
2018-07-14 11:21:41
202
原创 Exchanger 线程数据的交换器
Exchanger类实现了多个线程数据之间的安全交换。以下是小示例:import java.util.Random;import java.util.concurrent.Exchanger;/** * 线程数据交换器 * @author YangBaoBao * */public class ExchangerDemo { public static void main(String[] arg...
2018-07-14 11:21:11
171
原创 Semaphore 线程信号灯
Semaphore是一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore只对可用许可的号码进行计数,并采取相应的行动。Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目.小实例:i...
2018-07-14 11:20:23
216
转载 Android框架大全
http://www.cnblogs.com/jincheng-yangchaofan/articles/7018780.html
2017-06-29 17:40:18
312
原创 APK反编译过程
前提需要反编译工具jui 一、更改apk文件的后缀名,例如:name.apk-->name.zip二、用zip解压缩abc.zip文件,并从解压缩的文件夹中 取出classes.dex 并放到dex2jar.bat所在目录三、运行cmd命令,进入dex2jar.bat所在的目录,输入dex2jar.bat classes.dex即可生成classes.dex.de
2012-02-21 19:17:07
750
原创 Android延时任务方法
第一种: new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage();----告诉主线程执行任务 } }).start 第二种:TimerTask task = new TimerTas
2012-02-21 19:10:28
564
24中设计模式
2011-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人