- 博客(67)
- 资源 (21)
- 收藏
- 关注
原创 Android 音视频系列-视频录制
1、录制前的预览一般而言,我们在录制之前,都需要预览。我们来回归下利用Camera2进行预览的步骤:通过CameraManager获取可用的相机设备列表。 通过CameraManager拿到对应相机的参数 调用openCamera打开相机。 在回调中创建CaptureRequestBuilder与CameraCaptureSession。其中,要将我们的Surface添加到CaptureRequestBuilder中,这里我们还是使用TextureView,通过其SurfaceTextur
2021-07-07 10:20:48
449
原创 【音视频】音视频入门基础
1、音视频学习路线对于音视频来说,通常包括以下4个方面的知识:采集:把视频、声音从设备上抽样采集; 渲染:即播放展示; 处理:包括去噪、回声消除、混音、特效、转场等; 传输:上传、直播;下面先来了解音视频的基本知识2、音视频封装格式我们日常所看到的音频视频的后缀格式,比如mp3、avi、rmvb等,它们其实是音视频的封装格式,也就是说,把音频、视频打包成一个统一约定的格式文件,类似于word文档后缀是.word一样;只不过,由于约定的组织、公司标准以及算法侧重点不同,目前有比较多的.
2020-06-22 14:23:30
658
1
原创 细说HTTP笔记1:HTTP的出道故事
1、出道前的那段时期1989年,那个时候,我们普通人还没怎么接触过电脑,还不能淘宝(因为那会马云还在杭州教书。。),也不能QQ聊天(马化腾98年才创立腾讯),遇到问题了也不可以百度(李彦宏还在北大读书)。那会,互联网属于很少的一部分人。 1990年11月,世界上第一台Web服务器和Web浏览器诞生在CERN(欧洲核子研究组织。。额这个名称确实比较难理解。。核子%>_)手上。然而,那会上
2015-01-20 22:34:31
1415
原创 弄明白android网络库之Volley listView加载大量图片
一、加载一张图片 Volley是通过ImageRequest来获取网络上的图片的,指定一个URL,返回一个已经编码号的bitmap。当然它也提供了其他便利特性,比如调整图片大小。使用它它主要的好处是 Volley的计划线程确保了如图片编码、调整大小等昂贵的操作自动地在一个工作线程完成,不会给主线程带来太多的麻烦和干扰。 a cannedrequest for getting
2015-01-01 20:24:55
3575
1
原创 弄明白Android 接口回调机制
以前对于这个机制理解不够深刻,现在重新整理下思路。一、建模我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去做别的事情去了,你在某个触发的时机回头来调用我doSomething的方法。好比,我给你打电话问某个难题,你电话里想不出来,于是说等想到了再回我电话。于是接口回调机制比喻模型如下 第一步:首先,你我得约定,这个实
2014-12-30 13:15:07
2488
原创 HTTP 方法详解
一、基础篇所谓HTTP请求方法就是你提前告诉服务器你要进行什么类型的操作,如同你吃饭前先点菜,告诉餐厅要给你准备做什么样的菜。 一共有8个类型的方法 GETHEADPOSTPUTDELETEOPTIONSTRACE扩展方法
2014-12-27 16:17:59
1432
原创 弄明白android 网络库之Volley(一)
1、Volley是什么?Volley是Google官方在2013 Android IO大会上推出的新网络通信框架,一个使得android网络通信更加容易并且迅速的HTTP库。它并且可以通过开放的AOSP仓库进行使用。它有以下特性:(1)自动调度网络请求;(2)支持多并发的网络连接;(3)磁盘和内存响应缓存使用标准HTTP缓存特性;(4)支持请求优先级;(5)
2014-12-21 21:59:57
1352
原创 弄明白handler机制
一、Looper类首先,你得知道一个类,Looper类,顾名思义,Looper就是循环者的意思,那么Looper类的存在就是为了让一个普普通通的线程变成一个会循环执行的线程,我们可以理解为长生不老药,吃了就能不老。 普通的Thread类只需要执行Looper.prepare()方法就可以循环执行了。prepare()方法是Looper类的静态方法,如下:public cla
2014-12-18 21:51:41
945
1
原创 弄明白ThreadLocal类
1、ThreadLocal类的由来因为有问题,人类就会想法设法的创造一些东西出来解决问题,嗯,这句话同意吧。假如目前有这么一个问题:有个家庭,三个孩子都想看妈妈买的一本童话书,但是只有一本书,该如何是好?方法一:家里没钱买第二本了,那就排队看,谁跑得快来到妈妈面前的就先看。后面来晚的,候着等着。等前面的看完再到你。于是以时间换空间的synchronized类出现了。 方
2014-12-17 21:37:16
905
原创 算法之逆序对问题求解
题目: 给出一列数,a1, a2,....到 an,求它的逆序对数。逆序对就是 下标 i 比 j小,但是值 ai 却比 a j大。n 可以高大 10万。 思路:(1)穷举,肯定不现实的,因为n 可以高达10万,肯定超时;(2)考录分治法,受到归并排序的启发,能不能不断划分数组到最小,然后合并时统计 逆序对数。划分和递归都和归并排序没什么区别,问题在合并时如何统计。合并左右两个数
2014-09-11 21:02:09
2657
原创 Android 是怎么启动一个Acitivity的?
可以把启动过程分为client端和server端。一、client端在启动一个Activity时进行的工作备注:我个人理解,client端指的是相对后台ActivityManagerService进程来说的前台用户可见的进程,如在界面启动某一个Activity的就是Laucher进程。这里则以从home桌面启动一个Activity来分析启动过程:(1)Launcher这个进程的
2014-09-05 16:26:43
1961
原创 《HTTP权威指南》笔记之 网络状态码
状态码分为五大类,(1)100 ~ 199 信息性状态码状态码含义原因短语100说明服务器收到了请求的初始部分,请客户端继续发送Continue101说明服务器正在根据客户端的指定,将协议转换成为 Update首部所列的协议Switching Protoc
2014-08-20 15:20:41
1150
原创 以另一种位图的思想来解决一道OJ题目
前言:以前所接触到的位图的思想都是以1位的形式去存储某个数出现的次数是1次还是0次。常见的例子不外乎在《编程珠玑》上的开篇例子里,1千万个数的排序统计,用1.25M的内存空间就可以达到遍历一遍输入数据而排序好的目的。这种思想是通用的么?也就是说,假如输入数据不再是0次或者1次,而是2次或者更多的时候,如何再次用上这种思想呢?请看下面题目题目:输入一个数组,数组有int类型整数若
2014-08-16 14:33:19
956
原创 理解用setTag 和 Viewholder 来优化listView
在说 setTag和getTag之前,我们先说下 Viewholder,它不是Android开发固定的API,而是谷歌Demo中推荐的设计方法。Viewholder对象它一般包括listview子项里所有的组件,convertView是空的,在Viewholder里存储对列表子项每个组件的id应用,通过setTag方法,把这个带有view引用的对象附加在View上,如此,当listView
2014-08-14 20:31:14
8739
原创 快速排序为什么快?
这是曾经思考过的问题,它为什么叫快速排序呢?思考无果,然后忘记了,然后昨天被问起,自然想不出很好的答案。直到,看到了《暗时间》上有这个问题的答案。 在《暗时间》里,作者刘未然并没有直接给出答案,而是先说了两个游戏,猜数字和称球。这两个问题都很好理解,并且不难解答。然而,令我豁然开朗的是,他们指向了同一个思想,分而治之!把问题不断切割一半又一半,直到答案水落石出。 回到正题,我们
2014-08-08 01:20:01
16519
1
原创 为什么接口中的成员变量非得是public static final?
前言,这是今天面试的时候被问到的一个题目。我没有答得很完整。好惭愧。两年来一直做项目,却没有好好留点时间静下心来思考什么是这样,那么以后自己做出来的产品想必会存在漏洞,因为我对有些事情欠缺完整的思考。知道是缺点了,便要改。 为什么接口中的成员变量非得是public static final的呢? 首先明白一个原理,就是接口的存在意义。接口就是为了实现多继承的抽象类,是一种高度抽
2014-08-06 21:03:58
2454
1
原创 java垃圾回收算法
(1)引用计数法这是最经典和最古老的一种,它的工作原理是为每个对象配备一个计数器,只有这个对象被引用了,引用计数器就加1,当引用失效时,计数器减一,只要计数器为0,意味着不再被使用,于是该对象就可以被回收了。优点:实现简单;缺点:无法处理循环引用情况。即有应该被回收的垃圾对象A、B,他们互相引用,除此之外无其他引用,然而他们计数器值不是0,因此无法回收,从而造成内存泄漏。 (2
2014-08-02 15:49:24
1185
原创 算法笔记之堆排序
一、对堆排序的相关了解1、堆排序的运行时间是 O(nlogn);2、定义:堆heap是一棵具有以下属性的二叉树——(1)它是一棵完全二叉树;(2)每个结点大于或等于它的任意一个孩子。 备注:完全二叉树的定义——除了最后一层没填满以及最后一层的叶子都是偏左放置的,其他层都是满的二叉树! 3、二叉堆有两种:最大堆和最小堆。在堆排序中我
2014-07-31 21:03:38
1270
原创 LeetCode 之 two Sum寻找两个相加之和为给定值的两个数
题目Given an array of integers, find two numbers such thatthey add up to a specific target number.The function twoSum should return indices of the twonumbers such that they add up to the target,
2014-07-27 19:48:14
1542
原创 设计模式之观察者模式
一、定义观察者模式,又称为发布订阅模式根据《设计模式》上对该模式的定义就是——一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有的观察者对象,使得他们能够自动更新自己。 其实,就相当于,校园广播一样,当校长说周一升旗仪式因为下雨而取消,这时候,安装了喇叭的教室班级全部收到了这个通知,而没有安装的自然就收不到这个通知。安装了喇叭的教室班
2014-07-27 16:17:31
838
原创 算法笔记之快速排序
1.1算法思路——该算法在数组中选定一个元素作为主元(一般选第一个),然后以这个主元为参考对象将数组分为两个部分,第一部分都是小于或者等于主元,第二部分都是大于或者等于主元。然后对第一和第二部分递归地使用快速排序算法,直到分到最小的小组为止。1.2时间复杂度——在最差的情况下,要把n个元素的数组划分,需要n次比较和n次移动。假设用T(n)来表示使用快速排序算法来排序n个元素
2014-07-24 01:50:34
1613
原创 算法笔记之归并排序
4、归并排序4.1算法思想——将数组分为两半,对每部分递归地应用归并排序,直到最后的子数组只包含一个元素。在每部分都排好序后,对它们进行合并。4.2时间复杂度——假如用T(n)表示使用归并排序对n个元素构成的数组进行排序而使用的时间,用mergeTime来表示将两个子分组合并起来而花费的时间。那么T(n) = T(n/2)+T(n/2) + mergetime而me
2014-07-22 02:07:57
984
原创 Android笔记之 文件保存、压缩与清空删除
这两天改进优化项目中图片上传的代码,考虑到可能有7、8M的比较大的图片,因为要先进行压缩。所以设计到文件的压缩,保存与清空删除操作。在这里记下笔记。/** * 压缩并另存为,每次先清空再保存 */ private void compressFile(){ //清空保存目录下的旧照片 String saveDir = Environment.getExternalStorag
2014-07-21 23:49:53
2956
原创 复习排序算法
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); int[] array = new int[num]; for
2014-07-19 01:33:44
635
原创 用httpUrlConnection实现文件上传
1、事先了解1.1请求格式我们使用http来上传文件,必须先了解http的请求格式,然后才好发报。主要分为以下四个部分:(1)分界符:由两个连字符“--”和任意字符串组成;(2)标准http报文格式,来形容上传文件的相关信息,包括请求参数名,上传文件名,文件类型,接收语言等。(3)上传文件的内容,通常是字节流的形式;(4)文件全部上传后的结束符:与分界符类似,只不过需要
2014-07-16 22:03:07
8697
原创 一个程序员的遗嘱么?
出差归来,习惯性地去微博浏览,却发现了师兄师姐们都在转发一个微博,上面是一个来自上海交大的程序员的“遗嘱”,上千的转发,让我一开始不相信的怀疑到如今的半信半疑,是真的么?我至今不敢相信。一个按理说十分优秀的程序员(从“遗嘱”的长微博和他的以往微博可以看出),真真不会傻到为了一个女孩而去殉情!!而现在,好像是真的了,因为“遗嘱”字里行间,表达出了他对这个世界深深的疲倦,对过往6年爱情的无限执着,入戏
2014-07-14 23:56:22
1414
原创 华为OJ训练之 简易的银行排号叫号系统
闯关第五关的题目,一个中级题和一个高级题。中间题比较简单,半个小时完成了。题目如下实现一个简易的银行排号叫号系统 get 取号 示例:"get"或"get vip"call 叫号 示例:"call"delete 删除号码 示例:"delete 5
2014-07-10 23:49:52
3471
原创 华为OJ训练 之 括号配对数目问题
题目如下括号配对问题输入n个括号,输出能组合的n个括号组合,例如——输入1时,只有()一种;输入2时,有()()和(())两种;输入3时,有()()(),()(()),(())(),(()())和((())),共5种。输入4时有14种。。依次类推。我想到的笨方法,类推找规律,因为我相信这个肯定有个公式的。找了好一会。没总结出来,于是翻书,因为印象中看过类似的
2014-07-09 23:59:37
2632
原创 华为OJ训练题之 比赛情况统计
题目如下:比赛情况统计有一个游戏平台,各个参赛队伍(以唯一的TeamID来标识)之间进行单循环的对抗赛,两个队伍之间只举行一场比赛,比赛以得分的多少定胜负。需要完成一个统计赛况的程序,能够随时查询指定队伍的最新赛况:包括胜、平、负的局数,当前总积分以及名次。 说明:循环赛没有全部结束时也可以查询某个队伍的最新赛况 规则说明比赛判定:两个队伍中得分高的一方为胜者,另一方为
2014-07-08 23:57:41
3843
原创 Java 笔记之基础复习
1、&与 &&的区别两个都有逻辑与的功能。但是所不同的是,当&两边的表达式不是boolean类型的时候,&具有位与的功能;&&是短路与,当判断到前一个表达式为false的时候,将不会再去计算后面的表达式。如:int i = 0; System.out.println((1==0)&(0==(i++))); System.out.println(i);
2014-07-07 23:50:44
965
原创 算法笔记之动态规划
1、以故事的方式来讲述何为动态规划在看了MIT的算法导论教学视频后,我对动态规划的思想依然不太清楚。直至到我看到这么一篇文章,这么一个故事。一个聪明的国王与金矿的故事。http://www.cnblogs.com/sdjl/articles/1274312.html 看完总结:引用百度百科对动态规划的定义——把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解
2014-07-07 00:04:21
1277
原创 Android笔记之属性动画
前言、动画分类如下图所示,Android的动画主要分为三种: 下面首先说说属性动画所谓属性动画——就是指对象的属性值发生了变化,如控件位置和透明度等。举例,现在要实现一个按键先下移,再右移的动画。(1)编写动画xml由于新建android工程的时候,在res下面并没有专门放置动画xml的文件夹,因此,我们新建一个animator名称的文件夹。建议不要起别
2014-07-06 23:35:10
1197
原创 Eclipse SVN 安装使用笔记
1、 下载SVN 插件打开 Eclipse , 菜单栏 Help -> Install New Software 在 Work with 这里添加网址 : http://subclipse.tigris.org/update_1.8.x/ 回车后即会出现如下两个选项,全部勾选一路next , 到安装完毕,中间会弹出个警告的, 不用管它,点击 “ ok
2014-07-05 22:36:03
1629
原创 Android笔记之 TTS中文发音
1、TTS 就是 Text to Speech ,把文本内容变为语音。 谷歌在Android 1.6 开始就支持TTS 了,但是可惜,只是支持英语法语德语等五种语言,唯独丫丫的木有我们中文。 所以,我们只能另外自己开发中文语音包程序。目前主要有以下几种中文TTS 。 (1)开源项目 eyes-free ,链接是: http://code.google.com/p/eyes-fr
2014-07-04 23:29:02
3385
原创 Android笔记之 开机自启动
在项目中用到开机自动运行功能,因此学习了下,在此作为笔记记录下。主要是以下4个步骤:1、原理了解:通过搜查资料发现,当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为android.intent.action.BOOT_COMPLETED,因此我们只需要在自己的应用中接收这个广播,然后启动APP即可。 2、编写接收
2014-07-03 23:48:59
1057
原创 Android笔记之网络状态判断
1、首先当然得在 manifest 中添加检查网络状态的权限;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">uses-permission>uses-permission android:name="android.permission.INTERNET"/>2、具体判断步骤
2014-07-02 23:34:33
858
原创 java笔记之正则表达式
一、什么是正则表达式RegularExpression,在代码中常简写为regex、regexp或RE;正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”
2014-07-01 23:58:51
842
原创 Android笔记之 以JSON方式与服务器通信
1.JSON数据结构在JSON中有两种数据结构:对象和数组。1.1对象在JSON中,一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号),冒号后是该名称的值,多个“名称:值”之间使用 “,”(逗号)分隔开来。名称需要使用双引号括起来,值如果是字符串则必须用双引号括起来,如果是数值型则不需要。其结构示意图如图1所示。图1 JSON对象结构示
2014-06-30 23:57:28
1063
原创 Android笔记之 Web Service 基础
一、Web Service是什么?就是网络服务,根据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包含、自描述和模块化的应用程序,它可以在网络中被描述、发布和调用,可以将它看作是基于网络的、分布式的模块化组件。 Web Services是建立在通用协议的基础之上的,包括HTTP、SOAP、UDDI、WSDL等。其中
2014-06-29 23:56:18
1288
NineOldAndroids 属性动画开源项目apk和源码
2014-07-06
手说TTS中文DEMO
2014-07-04
四种launchMode例程
2014-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人