android
文章平均质量分 58
媒体盒子
专注于Android多媒体领域研发的技术流
展开
-
关于编译VLC-Android最新代码的正确姿势
可能大家看到这个帖子的时候已经经历了无数次的编译错误,那肯定是你编译的姿势不对,下面就是正确的姿势:1.编译环境必须用比较新的Ubuntu系统(其他linux平台也应该是需要比较新的),我采用的是ubuntu16.04 俗称麒麟 destop版(此版本的gettext版本是19.7这个比较重要,太低了会编译出错)2.严格按照https://wiki.videolan.org/Android原创 2017-01-10 09:06:15 · 764 阅读 · 2 评论 -
2014年四月份最新Linphone-android代码下载
下载过linphone代码的都知道,必须使用git从linphone代码仓库clone代码,最近通过git下载最新的linphone-android代码时发现每次下载到一半就中断,然后不得不重新去git clone,但每次都会在中途断开,也就是通过此办法无法下载带最新的linphone-android完整代码了。经过本人摸索,现将以下办法共享给大家:首先通过git clone git://原创 2014-04-15 09:59:27 · 2991 阅读 · 1 评论 -
关于Android Menu横纵向显示的问题(经过验证)
android:targetSdkVersion="8" 横向android:targetSdkVersion="15" 纵向其他的可以自己试试,基本应该是跟android:targetSdkVersion的设置相关跟sdk的版本没有半毛钱的关系。原创 2013-11-20 09:29:57 · 2267 阅读 · 0 评论 -
Android应用程序耗电那点事
今天无意间找到一篇关于Android程序耗电的文章,感觉写得十分深刻故转载作为记录http://www.cnblogs.com/alario/archive/2012/03/27/2419441.html后台应用不应做Android待机电池杀手Android是一个相当开放的平台,允许我们开发常驻后台运行的应用程序,依靠TCP长连接接受服务器的消息推送,但也因转载 2013-09-23 09:33:38 · 2246 阅读 · 0 评论 -
Android媒体扫描详细解析之二(MediaScanner & MediaProvider)
上篇blog说到了经过对文件夹进行扫描如果后缀符合系统设定的一些格式,那么就会进行文件内容扫描下面我们紧接着STEP 14中的status_t StagefrightMediaScanner::processFile( const char *path, const char *mimeType, MediaScannerClient &client) {原创 2013-08-15 16:05:39 · 4173 阅读 · 0 评论 -
Android媒体扫描详细解析之一(MediaScanner & MediaProvider)
用过Android手机的同学都知道,每次开机的时候系统会先扫描sdcard,sdcard重新插拔(挂载)也会扫描一次sdcard。为什么要扫描sdcard,其实是为了给系统的其他应用提供便利,比如,Gallary、Music、VideoPlayer等应用,进入Gallary后会显示sdcard中的所有图片,如果进入Gallary后再去扫描,可想而知,你会厌恶这个应用,因为我们会觉得它反应太原创 2013-08-15 12:07:57 · 12739 阅读 · 2 评论 -
Application.mk中APP_ABI 的含义
我们在编写JNI代码时有一个可选的文件Application.mk ,这个文件你可以不创建,但是有时候是有必要写一个这样的文件的。Application.mk文件用于描述应用程序本身的一些属性信息,如应用程序依赖哪些库,应用程序的根目录,应用程序运行在哪些类型指令集的CPU下,还有一些编译选项,在此文件中定义的东西会应用于整个应用程序包括android.mk也会用到这里面的选项。原创 2013-06-26 15:32:30 · 11203 阅读 · 0 评论 -
Android(2.3+)源码分析MediaPlayer之RTSP
在前面的博客中有简单介绍MediaPlayer,最近又开始研究这块东西,在此把阅读代码的理解记录下来方便以后快速查阅。播放普通文件传入的url是一个本地的绝对路径,但是流媒体的话传入的就是一个网络地址如以"http://“开头的流媒体和以"rtsp://"开头的流媒体协议。下面从源码中的Awesomeplayer.cpp finishSetDataSource_l函数入手(也相当与medi原创 2013-05-16 17:34:02 · 5626 阅读 · 6 评论 -
Android 之UI自适应解决方案
1.概况 作为Android开发人员,最头疼的莫过于让自己开发的程序在不同终端上面的显示效果看起来尽量一致(当然,如果要充分利用大屏幕的优势另当别论)。在全球范围内来讲,android有着数以亿计的设备,其中就不乏设备分辨率多种多样,以及设备屏幕物理尺寸的多样化。 总得来说我们需要做的有三点,其一让APP的每个UI中的每个View宽和高更加灵活以适应不同分辨率、原创 2014-05-30 17:29:44 · 6200 阅读 · 1 评论 -
Android如何实现对系统自带对话框标题栏进行修改
先上一张图可以看到,对话框的标题颜色是蓝色的,下面还有一根线也是蓝色的,在某些情况下,我们想改变程序的主题风格,颜色必须做修改,但又懒得去定制Dialog,下面的方法就诞生了: public static final void dialogTitleLineColor(Dialog dialog, int color) { Context context = dialog.ge原创 2014-11-27 15:09:09 · 4501 阅读 · 0 评论 -
Bogus,bad length value xxx > IP Payload length
如果用Wireshark抓包看到有这种包,那么这个包肯定会被丢掉,表现在你的程序里面就是Server发包了,但是client没有收到,抓包看又有这个包问题产生原因,包标记的 长度大于实际传输过来的数据长度,这种问题产生的原因大部分是硬件问题,比如HUB或者Switch在包比较多的时候产生掉包,建议换个HUB或者SWITCH试试或许问题就没有了。原创 2016-09-20 08:21:49 · 7752 阅读 · 2 评论 -
Android如何不用setCustomView而实现ActionBar的自定义修改
做有ActionBar的项目时,比较懒,不想采用自定义的方式去自己写layout文件,然后分析源码,发现有些东西并不需要采用Custom的方式也能实现定制化。比如返回按钮的图标,ActionBar的背景,以及多个页面都需要修改,如果不用在每个页面都做代码修改。方法如下: @drawable/title_bg -20dp原创 2015-10-26 17:30:02 · 2376 阅读 · 0 评论 -
文章标题
Android button内容越界滚动的实现只所以要写这么一篇基础性比较强的文章是因为之前一直以为这种功能设置下属性就可以实现了,其实不然! 当你使用各种属性都没办法达到预期效果时,请参考我下面的代码:public class ScrollForeverButton extends Button { public ScrollForeverButton(Context context) {原创 2015-07-14 13:26:04 · 855 阅读 · 0 评论 -
如何从H264原始数据SPS里面得到视频的长宽
有这样一种需求,给你一个h264原始数据文件,让你直接播放出来,如何实现?思路是这样的,H264原始数据格式都是 0x00000001后面跟0x67 0x68 0x65 0x41这样的数据,解码需要一个完整的NAL数据单元,我们需要将每个0x00000001以及下一个0x00000001之前的数据读出来,交给解码器解码。读文件我就不啰嗦了,本文主要讲解如何从SPS获取视频长宽,SPS即0x原创 2015-06-16 14:34:55 · 5638 阅读 · 4 评论 -
一个特殊需求的环形Buffer设计
最近有一个特别坑人的需求,厂家平板提供了一个回声消除接口,但每次只能读固定大小的字节数,但我们的编码器每次读取的自己数和这个大小不一样,于是就萌生了一种做一个buffer来临时存储声音数据,然后编码器再去读取,这样不管厂家每次读多少个自己,codec这边也可以控制读取的字节数了。首先映入眼帘的肯定首选环形buffer我先定义一个writeIndex 一个 readIndex,和一个当前bu原创 2015-04-10 11:07:29 · 1423 阅读 · 1 评论 -
Android各种机型,各种系统版本,如何获取外置SDCard路径
由于项目需要,在有外置sdcard的情况下,可能不希望直接将应用内数据存入内置sdcard,我于是专门写了一个函数来获取sdcard路径如果有外置sdcard就获取外置sdcard,如果没有就用系统默认的"外置sdcard"(深入研究可能知道,这个外置sdcard实际是从内置sdcard里面分出来的一个分区而已)下面直接上代码:public static String getSDCar原创 2015-01-15 10:49:20 · 1587 阅读 · 0 评论 -
Android保持屏幕常亮的三种方法
好长时间没写Blog了,最近又要实现类似功能,每次都百度去找不是很方便,还是在自己的blog上记录一笔吧!方法共有三种:1.申请亮屏锁 pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);//得到电源管理器对象wl = pm.newWakeLock(PowerManager.ACQUIRE_CAU原创 2014-11-21 16:11:06 · 5233 阅读 · 0 评论 -
swf 格式Flash 动画播放器在Android上的实现
首先明确一点,swf格式和其他的一些视频格式有很大的区别。它里面不仅有音频还有其他的各种元素(术语叫块类型)包括但不仅限于:矢量图、图片、文字、字体、片段动画、按钮、帧、动作、音频等等你需要将这些元素一一解析并渲染出来。这种格式是允许用户来互动的,你像大多数flash游戏,用户可以点击按钮产生不同的动画效果。这就说明swf格式里面还有代码来控制这些行为。下面来谈实现原创 2013-05-02 09:32:10 · 5780 阅读 · 5 评论 -
android 程序中如何导入第三方jar包(包括android系统程序)
1.android 普通应用程序开发者我们之前在网上看到最多的是在Java Build Path里面Add jars ,Add External Jars或者Add Library,其实这些只是能确保编译没问题只有自己试过才知道,你运行的时候链接是找不到对应的第三方jar包的。举例 比如你要导入org.apache.commons.net(各种协议栈的实现)的jar包到你的程序中首原创 2013-04-10 09:38:43 · 2614 阅读 · 0 评论 -
网络操作不加超时引发的无限悲剧
可以说我是一个网络方面的菜鸟!现在做的项目网络部分是别个写的(已经离职)今天突然发现个问题,我在他代码的catch里面加入了一些提示信息(android 平台,弹个toast之类的)发现肯定会走到异常的代码死都走不到异常里面去。我就郁闷了,在代码里面打印了各种log 11111111 2222222222 333333333 苦逼懒得写那么清楚了原创 2013-03-22 15:34:34 · 1403 阅读 · 0 评论 -
如何解决放到android /system/app 下的应用程序无限重启弹出“异常终止”的问题
出现了标题中提到的情况肯定是你做了如下操作: 1. 你获取了手机的root权限 2.你用文件管理器将你自己的apk 拷贝到了/system/app下,想让他成为系统APK 3.你这个应用程序是开机自启动的(这样就会更麻烦,开机就挂,而且你点强制关闭后会重启,也就是说你无法进行其他任何操作了) 4.请解压你的APK看看是否有lib 存在,原创 2012-09-01 12:43:03 · 5350 阅读 · 1 评论 -
android 源码下如何将修改编入image 以及其他遇到问提总结
1. 编译报错,找不到R相关资源在源码目录下新建一个应用,或者复制其它应用时,常出现这个错误。1) 什么是R.javaR.java中编译时自动生成的,工程用到所有的资源,都会用到R.java2) 何时生成在源码根目录下make全部代码时,才会对每个模块生成R.java对资源更改后也会重新成生R.java3)转载 2012-09-01 11:18:25 · 1298 阅读 · 0 评论 -
关于 could not read symbols: File in wrong format 问题的解决方案
最近有个项目需要用到第三方的lib,而在它们的官网上面下载了linux版本的so于是根据它们提供的文档来调用so里面的函数,用ndk将so编译到我自己的jni lib中去。但是编译是过了,链接时出问题了:could not read symbols: File in wrong formatcollect2: ld returned 1 exit status后来找了下原创 2012-08-16 17:01:46 · 24772 阅读 · 1 评论 -
你们真的能屏蔽Home键而不对程序产生影响吗?
最近做到一个项目,是和视频通话相关的。要求视频通话的过程中是不允许退出到后台的。所以我们的做法是全屏+屏蔽Home,当然返回键肯定是挂断电话了。但目前屏蔽Home键的方法无非就是钻了Android的一些漏子,把window type 设置成TYPE_KEYGUARD,TPYE_KEYGUARD_DIALOG或者是TYPE_SYSTEM_ALERT。这样确实framewok层在判断如过win原创 2012-08-08 16:42:37 · 1942 阅读 · 5 评论 -
关于Android JNI 编程如何定位段错误的问题(addr2line的使用)
好久没写blog了,今天在项目中碰到段错误的问题。今天在此总结一下: 1.普通的应用程序或者静动态库,如果你想用addr2line 来定位段错误出在哪一行,请记住在编译它们的时候一定加上编译选项 -g 它会生成symbols信息 在你的exe or lib 里面。 2.NDK编译生成静动态库就没有必要在Android.mk的编译选项里面加-g了,应为ndk默认就会生成symbol原创 2012-07-09 19:49:29 · 3086 阅读 · 1 评论 -
android之Binder机制解析
说到Binder我们就不得不说android的服务,android之所以引入Binder就是为了实现代码的远程调用(一个进程调用另一个进程中的代码)而服务(service)大多都是通过binder机制来实现和客户端的通信的。要弄懂Binder机制,你只需要懂以下四点就OK了:========================================================原创 2012-05-24 23:04:19 · 2324 阅读 · 0 评论 -
android之媒体硬解OMX的实现
android的多媒体部分采用的编解码标准是OMX,当然这个标准是用于硬件编解码的,软件编解码在这里我就不说了。直接从stagefright的awesomeplayer开始说起吧,如果看过我前面博客的人知道stagefright使用的三个步骤:setdatasourepreparestart至于它们的作用在这里就不多说了。在prepare里面,当MediaExtractor原创 2012-05-17 22:33:45 · 17907 阅读 · 20 评论 -
android之camera从上到下
Android之camera从上到下 如果你想了解一下android的camera的大致框架内容看看我附带的图片就可以达到要求。不过图片毕竟比较抽象,还是然我们看下源码吧! 源码从APP到硬件抽象层,以这中从上到下的调用流程非常清晰。大家可以很容易看懂。我想带大家看的是camera从摄像头捕获一帧数据如何送到android的surface并且显示出来的。在framewo原创 2012-04-24 13:06:04 · 5351 阅读 · 0 评论 -
nativa java里面定义了函数,在JNI里面也实现了,函数名参数什么的都没有错,调用native函数是怎么就出现链接失败的情况呢???
如果你出现了标题中所提到的问题,请先不要急着ndk-build clean 或者是在eclipse 下面project->clean ,先检查一下你函数的命名方式,告诉大家,千万不要在函数中包含"_" ,不然会死链接到函数的,特别是用c写的代码,而且没有映射java ->native函数的情况下,切记!切记!我可是郁闷了好几个小时才发现的。原创 2012-09-20 19:14:03 · 1639 阅读 · 0 评论 -
各种开源协议的详细介绍
GPL在自由软件所使用的各种许可证之中,最为人们注意的也许是通用性公开许可证(General Public License,简称GPL)。GPL同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 GPL还规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的转载 2013-04-02 10:36:12 · 1362 阅读 · 0 评论 -
android 如何做到完全退出应用程序
当我在网上找“android 如何完全退出应用程序时”十有八九都是android.os.Process.killProcess(android.os.Process.myPid());又或者是System.exit(0);但这些未必对每一个应用程序都有效果。当你的应用程序中有很多Activity ,有很多Service,有很多线程,你就不要指望能通过以上方法来完全关闭你的进原创 2013-01-29 15:49:46 · 1812 阅读 · 0 评论 -
android 布局如何支持多种不同屏幕尺寸
支持多种屏幕android运行在不同尺寸和像素(密度)的设备上,android系统给应用程序提供了一个相同的环境去适应不同的UI显示界面。同时系统提供API让应用程序去控制UI在不同尺寸和密度的屏幕上的显示效果,因为我们肯定不希望在手机和平板上显示一样的效果。尽管android系统会自动缩放你的应用程序以适应不同分辨率,但是你也必须针对不同尺寸和密度的屏幕尽量优化,只有这样才能原创 2013-01-28 10:12:11 · 6777 阅读 · 1 评论 -
山寨机攻略
如今的手机市场鱼龙混杂 主要分为以下几种类别:1.行货2.私货(从港台,国外等地区没经过海关进来)3.私货(翻新机)4.山寨机(有的无良商家也称之为私货以混淆视听) 如果是买到前面二者还好,倘若买到翻新机或者山寨机那就亏大发了。翻新机不要识别,只能说拆开了看里面的硬件,至于表面上的东西基本看不出来。下面具体说下如何鉴别山寨机!!!首先拿到手机后系统都是可以仿原创 2013-01-04 09:52:08 · 1416 阅读 · 0 评论 -
关于Android权限那些事(应用程序获取root权限,system权限)
最近被权限给纠结了,下面这篇文章写得很好,和大家分享了:转自:http://my.unix-center.net/~Simon_fu/?p=531最近在移植Android过程中遇到了Android程序(apk)权限的问题。最近也对这方面进行了一些了解,在此和大家分享。 Android框架是基于Linux内核构建,所以Android安全系统也是基于Linux的安全架转载 2012-11-23 13:11:14 · 3585 阅读 · 0 评论 -
移植soundtouch到android 通过JNI来调用(二)
上一篇博客中写到了如何编译和安装soundtouch当安装soundtouch到你的ubuntu中后你可以通过运行soundstretch来体验一下soundtouch的用法,当然如果你运行soundstretch提示找不到lib的话你需要将/usr/local/lib 下面与soundtouch相关的lib放到/usr/lib下面至于soundstretch的用法,可以通过自原创 2012-11-19 21:25:22 · 5784 阅读 · 8 评论 -
如果在NDK编译的时候遇到No rule to make target needed by *.o 请抽空看看这篇文章
由于平时写代码不小心,多半都是copy paste ,导致了一些自己不容易看出来的问题。比如我之前有写soundTouch的JNI 在这个里面我有将两个lib 一个动态的一个静态的都放到 了一个Android.mk中进行编译,但是发现莫名奇妙的报了个“No rule to make target”的错误,我找了大概有大半个小时才找到原因,就是我在一个Android.mk中声明了两个原创 2012-12-02 17:36:13 · 4014 阅读 · 1 评论 -
移植soundtouch 到android 通过JNI来调用(一)
最近准备开发一款可以变声的录音机,于是在网上找了一下这方面的开源代码,发现soundtouch是一个不错的选择。首先是在官网下载源代码http://www.surina.net/soundtouch/sourcecode.html如果是在windows 下用的话可以直接下载相应的库来调用,linux的库暂时没有,只能自己来编了。接下来就是编译源码了。(我使用的是Ubun原创 2012-11-05 22:13:28 · 4759 阅读 · 0 评论 -
android之MediaPlayer区别(android2.3与android4.0)
android之MediaPlayer区别 我们都知道MediaPlayer只是提供给上层调用的一种方式,正真做事的播放器是StagefrightPlayer ,PVPlayer,等等。 MediaPlayer从2.3开始就不用PVPlayer而改用StagefrightPlayer,但是PVPlayer的使能开关还是在的(也就是说你想用的时候改下宏你就可以用)原创 2012-04-24 16:56:08 · 5281 阅读 · 6 评论