- 博客(20)
- 收藏
- 关注
Android 歌词同步滚动效果
歌词是播放器类App必不可少的组件,而一般的歌词组件都需要做到歌词的显示与播放进度同步。我们知道,歌词是如下所示的文件: lrc [ti:原来爱情这么伤][ar:梁咏琪][al:给自己的情歌][00:00.55]梁咏琪 - 原来爱情这么伤[00:05.43]作词:彭学斌 [00:06.68]作曲:彭学斌[00:09.63][00:22.27]我睁开眼睛 却感觉不到天亮[00:29....
2012-09-03 19:51:25
359
FFmpeg媒体打开过程分析
从打开文件开始,入口函数是avformat_open_input(),下面是对此函数的分析://参数ps包含一切媒体相关的上下文结构,有它就有了一切,本函数如果打开媒体成功,//会返回一个AVFormatContext的实例.//参数filename是媒体文件名或URL.//参数fmt是要打开的媒体格式的操作结构,因为是读,所以是inputFormat.此处可以//传入一个调...
2012-08-09 09:51:25
148
FFmpeg 移植 Android
近期项目需要解析苹果的HLS流媒体协议,而FFmpeg从0.11.1“Happiness”版本开始,才增加了对HLS协议的支持。目前网上关于FFmpeg编译移植的文章有很多,但大多都是对旧版本的说明。新版本的源码对很多地方做了改动,包括一些变量名、常量名、函数名、函数参数、结构体等,所以在用旧版本的JNI接口时,需要相应地做出改动。这个编译移植工作确实花了本人不少时间,现在总结一下,希望能...
2012-07-27 17:12:11
204
Java网络连接之HttpURLConnection与HttpClient
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection。 HttpURLConnection是java的标准类,HttpURLConnection继承...
2012-05-31 10:24:05
163
数据结构与算法笔试面试题收录
本篇收录了本人亲身经历的各大公司最新Data Structures and Algorithm面试笔试题及解题思路,持续更新,欢迎补充。 1. 给定一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的兄弟单词,例如单词army和mary互为兄弟单词。现在给定一个字典,用户输入一个单词,如何根据字典找出这个单词有哪些兄弟单词?要求时间和空间效率尽可能的高。【2012...
2012-05-10 16:03:42
460
单例模式(Singleton)在SQLite操作中的应用
单例模式属于对象创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点。对一些类来说,只有一个实例是很重要的,比如最近我的一个Android项目中用到一个数据库管理类来封装SQLite读写操作。我们知道,SQLite对多线程支持并不是很好,如果两个线程同时操作数据库,会报 "Database is locked" 的错误。我想到的解决办法有两个:一是运用同步机制,...
2012-05-01 16:04:46
377
Java日历类Calendar的简单使用
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。 下面是Calendar 类的...
2012-03-22 13:09:00
120
Android 加载现有数据库文件
想把一个数据库db文件放在 res/raw/ 目录下,安装应用的时候就直接加载这个db文件到程序默认数据库目录下: /data/data/package_name/databases/db_name,这样就不用每次安装的时候都用SQL语句创建新的数据库。下面的代码就是将 res/raw/ 目录下的.db数据库文件拷贝到程序默认数据库目录下。 private String rootDi...
2012-03-21 22:03:35
230
用Dialog创建带箭头的对话框
很多应用中,在点击Button后,会弹出一个带箭头的对话框,指向这个Button。网上查了,很多人都说用PopupWindow可以实现,我对PopupWindow不熟,于是试着用Dialog实现。(需要注意的是:PopupWindow是一个阻塞式的弹出框,这就意味着在我们退出这个弹出框之前,程序会一直等待,这和AlertDialog不同,AlertDialog是非阻塞式弹出框,Aler...
2012-03-07 18:58:32
121
Android消息队列模型——Thread,Handler,Looper,Massage Queue
Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列(Message Queue)和一个消息循环(Looper)。Android中除了UI线程(主线程),创建的工作线程默认是没有消息循环和消息队列的。如果想让该线程具有消息队列和消息循环,并具有消息处理机制,就需要在线程中首先调用Looper.prepare()来创建消息队列,然后...
2012-03-07 09:17:36
257
浅谈Java平台与Android平台
先说一说Java平台与Java语言的关系: Java编程语言与Java平台是两个完全不同的概念。前者泛指一系列编程的语法,而后者包括前者,同时又超出前者的范围。一般而言,Java平台由三部分组成,分别为核心的Java API(包、框架及类库)、Java字节码(编译且可执行的形式)以及Java虚拟机(JVM,执行字节码的运行机制)Java语言只不过是Java平台中...
2012-03-06 13:46:15
169
原创 Android UI主线程与子线程
在一个Android 程序开始运行的时候,会单独启动一个Process。默认的情况下,所有这个程序中的Activity或者Service(Service和 Activity只是Android提供的Components中的两种,除此之外还有Content Provider和Broadcast Receiver)都会跑在这个Process。 一个Android 程序默认...
2012-03-05 22:47:47
108
用Watij爬取网页内容
最近一项目需要从某高校教务处网站爬取各教学楼的教室安排数据,网址为:http://202.114.5.131/index.aspx 。 用firebug监视,点击页面上的“查询”按钮后,发现请求url是被加密过的,无法获取。后经人指点,可用Watij (Web Application Testing in Java) 来模拟网页控件操作,获取数据。 Wati...
2012-03-03 12:51:31
147
MyEclipse设置编码格式
在MyEclipse中imort项目后,发现个别类的中文注释全是乱码。想在Window --> Preference --> General --> Editors --> Text Editors --> Spelling 中的 Encoding 里设置,但是没有GBK的选项。发现其实通过Window进入是全局设置,如果需要对单个文件进行局部设置,可在P...
2012-02-29 14:18:17
86
原创 数组(Array)与ArrayList之比较
一、数组与ArrayList的主要区别:效率、类型识别和primitive type。数组(Array):最高效;但是其容量固定且无法动态改变;ArrayList:容量可动态增长;但牺牲效率;建议:首先使用数组,无法确定数组大小时才使用ArrayList!1.效率:数组扩容是对ArrayList效率影响比较大的一个因素。每当执行Add、AddRange、Insert、InsertRange等添加元...
2012-02-29 12:51:10
149
SVN服务器端安装与配置
1.下载Subversion并安装 到http://subversion.apache.org/下载最新版安装文件并安装,如装在C:\Program Files目录下2.创建版本库目录 建立一个空文件夹作为版本库目录,例如在D盘下新建SVN文件夹。 3.创建版本库 进入命令行,并切换到Subversion的bin目录,如C:\Program Files\Subversion\bin。执行命令svn...
2012-02-28 20:31:33
112
assets目录与res/raw、res/drawable目录的区别
assets目录与res下的raw、drawable目录一样,也可用来存放资源文件,但它们三者有区别,对比总结如下表: assetsres/rawres/drawable获取资源方式: 文件路径+文件名 R.raw.xxx R.drawable.xxx 是否被压缩:NONOYES(失真压缩)...
2012-02-26 22:44:22
278
Dialog向Activity传递数据
我们知道,从一个Activity向另一个Activity传递数据,用Intent实现。而当一个浮在Activity之上的Dialog需要向该Activity传递数据时,应该怎么实现呢?接着上一篇文章:[url=http://superonion.iteye.com/blog/1416808]用Dialog创建带箭头的对话框[/url]。 现在PopupDialog中声...
2012-02-22 21:11:06
163
原创 用Dialog创建带箭头的对话框
很多应用中,在点击Button后,会弹出一个带箭头的对话框,指向这个Button。网上查了,很多人都说用PopupWindow可以实现,我对PopupWindow不熟,于是试着用Dialog实现。 先选用一个带箭头的图片(pop.gif)做Dialog的背景,Dialog的布局文件如下:<LinearLayout xmlns:android="http://schemas.a
2012-02-22 20:01:50
1790
用Dialog创建带箭头的对话框
很多应用中,在点击Button后,会弹出一个带箭头的对话框,指向这个Button。网上查了,很多人都说用PopupWindow可以实现,我对PopupWindow不熟,于是试着用Dialog实现。(需要注意的是:PopupWindow是一个阻塞式的弹出框,这就意味着在我们退出这个弹出框之前,程序会一直等待,这和AlertDialog不同,AlertDialog是非阻塞式弹出框,Aler...
2012-02-22 18:25:22
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人