- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 ffmpeg常见的数据类型以及部分结构体中的变量含义
AVFormatContext 封装格式上下文结构体,也是统领全局的结构体,保存了视频文件封装格式相关信息 iformat:输入视频的AVInputFormat nb_stream:输入视频的AVStream个数 streams:输入视频的数组 duration:输入视频的时长(以微米为单位) bit_rate:输入视频的码率 AVInputFormat 每种封装...
2018-04-07 22:20:27
554
原创 使用 linux编译 android 平台的ffmpeg
centos版本: CentOS release 6.6 ndk版本:android-ndk-r15c-linux-x86_64.zip 下载 wget -c https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zipffmpeg版本: ffmpeg-2.6.9.tar.gz ,下载 wget ffmpeg....
2018-04-02 20:48:57
373
原创 LeetCode 将数组中的零移动到最后,保持原数组其它元素顺序不变
给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。用两个标记分别统计总共的元素个数和遍历到非零的元素个数,统计元素个数的下标每次都加一,如果非零则统计非零元素的下标加一,遍历时统计遍历到非零元素将该元素赋值给非统计零元素下标位置...
2018-03-19 23:13:00
3657
原创 LeetCode 加一
解题思路,首先判断数字的最后一个数是否为9,依次遍历,并且用一个carry标记是否进位,0表示不进位1表示进位,用number表示当前遍历的下标,如果是为9就直接将该下标赋值为0,并且将carry赋值为1,继续遍历下一位,直到当前数字不为9就直接将标记carry置为0,并且break结束for循环。在for循环结束之后再判断carry是否为1,如果是1并且number下标为0,就说明格式类似:99...
2018-03-19 22:46:01
702
原创 LeetCode 两数之和等于目标数
给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路是将数组中的元素用HaspMap保存,存储的形式有点不一样,由于最终需要的结果是下标。所以我们需要将数组中的元素作为key,元素...
2018-03-17 21:30:06
1281
原创 LeetCode 检查数组中是否有重复数字
有两种方法方法一:和之前的删除数组中的重复项思路类似。先要对数组进行排序,排序之后再进行相邻的俩数比较,之前的还需要保存不同项,该题不用,直接for i;i<num-1;i++。 args.sort() for (i in args.indices) { if (i < args.size - 1) { if (args[i] == args[i + 1]) { ...
2018-03-17 17:58:29
1193
原创 LeetCode 请找出这个只出现一次的元素。
给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。思路:用异或的方式排查出只出现一次的那个元素。异或两个为1或者是 同号为假(0)异号为真(1)0∧0=0,0∧1=1,1∧1=01 = 00012 = 00103 = 00112 = 00101 = 0001所以 1^2^3^2^1 = 3 ( 0011) fun singleNumber(nums: IntArr...
2018-03-16 22:32:06
729
原创 LeetCode 从排序数组中删除重复项
给定一个有序数组,删除重复内容,使每个元素只出现一次,并返回新的长度。不要为其他数组分配额外的空间,您必须通过在 o(1)额外的内存中修改输入数组来实现。例如:nums[]={5 5 5 6 7 7 7 7 9 9 9 9 9} 有4个不同数字 在数值不同时才做处理5 5 5 6 7 7 7 7 9 9 9 9 95 5 5 6 7 7 7 7 9 9 9 9 95 5 5 6 7 7 7 7 ...
2018-03-15 21:56:24
8927
2
原创 在使用Tinker集成到项目中Gradle进程内存报错
简单的翻译一下,就是运行dex进程时,Gradle的守护进程需要一个更大的堆内存。// 加了一句dexOptions { preDexLibraries = false //delete the already predexed libraries}//删除依赖中已经被dex的Lib文件
2017-03-30 21:16:25
260
原创 android 5.0之后原生webview同时用https请求不了http的资源图片解决方案
Android 5.0 用HTTPS访问HTTP的图片资源 对于5.0以下的没有影响,但是由于5.0是默认不支持mixed content的,即不支持同时加载https和http混合模式。所以要这样来:if (Build.VERSION.SDK_INT >= 21) { webSettings.setMixedContentMode(WebSettings.MIXED_CONT
2017-03-09 10:20:49
862
原创 AIDL
“只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL”,其他情况下你都可以选择其他方法,如使用Messager,也能跨进程通讯。可见AIDL是处理多线程、多客户端并发访问的。而Messager是单线程处理。
2016-07-24 21:35:36
254
原创 Service的绑定中,Binder跨进程与非跨进程的区别
客户端在执行bindService的时候,成功绑定服务之后,会回调MyConnection的onServiceConnected(),并且传回了服务端的通信接口抽象类Stub,抽象类Stub是继承自Binder对象,Binder对象是IBinder的实现类。 此IBinder即服务onBind()时返回的IBinder。测试在ServiceConnection的onServiceConnect
2016-07-24 20:13:04
2190
原创 sqlite no such table
在有时会在不同时刻创建数据表,这时候会创建多个OpenHelper操作数据库,有可能就会碰到no such table错误。分析原因:创建数据库的表的时候,先判断数据库名是否相同,如果数据库名相同,并且数据库的版本名也是相同的,那么就会出现后面那张要创建的表通过OpenHelper的onCreate会创建失败,因为数据库名字和数据库版本名相同,就意味只操作同一个数据库,所以只会调用先前的Ope
2016-07-21 02:20:50
4266
转载 Set、List、Map的总结
区别1.1、Collection 和 Map 的区别容器内每个为之所存储的元素个数不同。Collection类型者,每个位置只有一个元素。Map类型者,持有 key-value pair,像个小型数据库。1.2、各自旗下的子类关系Collection --List:将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。
2016-06-05 23:22:36
271
原创 compareTo和compare的区别
compareTo是Compareable接口的一个方法,主要用于规定创建对象的大小关系,该对象要实现compareable接口, 当a.compareTo(b)>0时,则a>b, 当a.compareTo(b)<0时, a@Override public int compare(Student o1, Student o2) { // 按name排序. 按降序(大到小)==
2016-06-05 22:57:53
1169
原创 Java堆栈的区别
堆:存放类类型,用new创建的,垃圾自动回收机制负责回收,速度慢。(1) 堆是一个“运行时”数据区,类的实例化对象 是从堆上去分配空间的,堆上的 空间都是通过new去创建的 。(2) 堆是动态分配内存大小的,即程序运行时分配的。(3) 堆空间的内存读取比较慢。new String("hello"); new出来的对象都是是存放在堆中。栈:存放基本数据类型,速度
2016-06-01 13:53:26
316
原创 Java传值
Java的基本类型是值传递。(boolean byte,char,short,int,long,float,double)Java引用数据类型传值是传引用 。(数组,String,等类)int a = 1;int b = a; // 输出结果: b=1a++; // 输出结果 a=2,b=1 基本数据类型”=“就是赋值的作用,将a内存空间中的值赋值给了b的内存空间
2016-06-01 13:16:21
346
原创 File文件delete失败的原因
Bug:有时在对File文件操作之后,想删除该文件,但是file.delete返回值为false。为什么?1、可能是流没有close。这时还不能对文件操作2、如果close流之后任然不能删除掉,原因就是JVM 回收机制的延迟。想删除成功可以手动调用垃圾回收:System.gc();
2016-06-01 12:47:41
1756
原创 Java静态变量的初始化分析
首先解释下: static关键字修饰变量 表示该类的所有对象共同拥有该属性,相当于该类的全局变量,类变量在加载的时候就初始化,而且只被初始化一次,程序中任何该类的对象对类变量做修改的时候,该类的其他对象得到的是修改之后的值,因此类量可以作为计数器,而且static变量可以用类名直接访问不需要创建对象之后再访问。 static修饰代码块 static修饰类里面独立的代码块,称为静态代码
2016-05-19 13:52:41
1511
原创 自定义Switch滑动开关
要自定义控件需要先继承View然后再重写两个方法,分别是onDraw方法和onMeasure(). (有时还可能会用到onLayout方法—改变该自定义控件在ViewGroup中的位置)。 //onDraw的参数是canvas: the canvas on which the background will be drawn onDraw方法:主要负责绘制图形(也可是Bitmap) 注意哦:该
2016-05-19 13:20:09
661
原创 引导页圆点的滑动两种实现方式
首先看一下页面的布局: 就是通过向悬浮在viewpager上的LinearLayout里面添加ImageView, 添加是需要注意,不能将同一对象添加多次,所以每个图片都的创建然后再添加到LinearLayout里面去,在LinearLayout的最右边在放一个FrameLayout,也就是FocusImage(当前获得页面的指示器)。 方法一:用属性动画(不能实时跟随页面的滑动) 重点
2016-05-18 00:01:31
1572
原创 单例模式简单介绍
静态内部类 实现了线程安全,又避免了同步带来的性能影响。public class Singleton{private Singleton(){} private static class LazyHolder{ private static final Singleton INSTANCE = new Singleton(); } public static fi
2016-05-02 00:08:02
259
原创 commit和executePendingTransactions的区别
commitAllowingStateLoss()替代commit()意思是说我使用的 commit方法是在Activity的onSaveInstanceState()之后调用的,这样会出错,因为onSaveInstanceState方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fragment就会出错。解决办法就是把co
2016-04-25 22:49:46
14240
转载 经典博客
主要将一些好的博客文章收集起来 讲解okhttp的用法及封装:http://blog.youkuaiyun.com/lmj623565791/article/details/49734867
2016-03-20 14:59:08
337
原创 OnTouch和OnTouchEvent的区别
在许多时候需要监听事件的点击动作,android有两种方法去实现。 一种是重写OnTouchEvent方法,还一种是实现实现OnTouchListener接口里面的OnTouch方法,看看这两种方法的区别到底在哪。 发现onTouchListener的接口的优先级是要高于onTouchEvent的,假若onTouchListener中的onTouch方法返回true,说明此次事件已经被消费了
2016-03-16 00:48:53
2045
转载 Android的事件分发机制(二)
接着上一篇讲,如果将Activity的dispatchTouchEvent(MotionEvent e)先写入switch判断事件并且Log输出事件类型最后返回结果return false; 这样 , 没有调用super的方法直接返回false。点击MyView后返回结果就会是这样的。 就是说不打算将事件分发下去。未完、、、
2016-03-15 22:31:59
212
原创 Android的事件分发机制(一)
activity的layout中嵌入MyLayout,并在其中加入自定义MyView,在三个嵌套的视图中, , 当点击这个myview时,事件的传递首先从Activity的dispatchTouchEvent(MotionEvent e)方法开始调用用switch判断每种MotionEvent输出Log,发现会响应ActionDown 也用switch判断事件并且输出Log响应Action
2016-03-15 22:07:31
266
Visval assistant rar 破解版
2014-05-22
C++版本贪吃蛇
2014-05-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人