
android
文章平均质量分 60
shcalm
这个作者很懒,什么都没留下…
展开
-
纪念一下
patch被android merged了...截图一下原创 2016-05-06 10:34:17 · 1688 阅读 · 0 评论 -
ANR的一个实例分析
ANR是android经常出的超时提示,以前看过一个帖子,内容是mediaplayer在release的时候出的ANR,作者也是出了方法,什么加handler之类的。最后都么有解决,咱们先看看那位同学些的帖子http://www.eoeandroid.com/forum.php?mod=viewthread&tid=55761&page=1&authorid=6510ANR 的一般原创 2013-07-15 16:32:24 · 2077 阅读 · 1 评论 -
OMXCodec源码分析---part2
书接前文omxcodec创建完了以后,后面就要开始读取数据,解码,送出数据一系列的操作接着看initvideodecoder,create omxcodec以后,调用了strat方法,代码如下{ CODEC_LOGV("OMXCodec::start "); Mutex::Autolock autoLock(mLock); if (mState != LO原创 2013-04-15 11:37:22 · 5838 阅读 · 0 评论 -
OMXCodec源码分析---part1
OMXCodec 是awesomeplayer和下层omax组件的桥梁,试着来分析一下OMXCodec在 initVideoDecoder中来创建 mVideoSource = OMXCodec::Create( mClient.interface(), mVideoTrack->getFormat(), false, // cr原创 2013-04-11 17:53:43 · 5371 阅读 · 1 评论 -
AudioFlinger 的一个小问题
AudioFlinger 类开始的时候定义了friend class BinderService,为啥要定义一个这个呢,后面有个注视 // for AudioFlinger()原来binderservice初始化的时候会new AudioFlinger出来,而audioflinger的构造函数的private,友元类就可以使用当前类的private方法了来说说为啥要把构造函数设成p原创 2013-03-07 15:54:24 · 1226 阅读 · 0 评论 -
锤子OS--Smartisan OS
哈 老罗要发布锤子OS了,挺好玩的 自己去老罗那面过,老罗的ROM是基于CM的,在上面做的APP,所以说对这个系统要有一个基本的看法,android有的系统毛病,这个都有,因为老罗没有对framework和下面的做啥修改,android最大的让人伤心的就是界面的不流畅,这个老罗估计是解决不了的。 再看就是老罗os的app,其实 我觉得苹果的app差不多已经做的好到一定程原创 2013-02-22 13:18:19 · 2364 阅读 · 0 评论 -
查询ip归属地 小应用
快过年了,写个小玩意 下面这个应用涉及到了一些基础东西.1 http api调用2 asynctask使用3 textview 自动匹配4 string 的spilt的正则表达式应用截图........截图传不上来.....代码贴下边public class MainActivity extends Activity { public stat原创 2014-01-28 17:36:37 · 1183 阅读 · 0 评论 -
2014年11月19日
1 write a video union websitedjango + jquery+ mysql + hadoop +ML原创 2014-11-24 00:14:02 · 3106 阅读 · 0 评论 -
Implementing graphics
Implementing graphicsIn this document Requirements Implementation OpenGL and EGL drivers Pre-rotation Gralloc HAL Protected buffers Hardwar转载 2014-11-24 19:30:53 · 2681 阅读 · 0 评论 -
在MAC下面用 eclipse调试android 6.0 framework
调试framework的话,一般都是用log的方式,很麻烦且费时,如果我们可以打断点的方式来调试,那就太爽了.下面开始介绍在mac下面的方法,ubuntu也类似1.下载asop代码. 国内有镜像,速度挺快.hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 70g ~/android.dmg原创 2015-12-03 22:15:36 · 2702 阅读 · 0 评论 -
android service常驻内存的一点思考
我们总是不想自己的Android service不被系统清理,以前时候大家最常用的办法就是在JNI里面fork出自己的进程,然后监视 service进程状态,杀死了就重启.我分别在android4.4和android5.0上面测试了LBE的清理内存功能,还是有很大区别的.先说一下我们的代码,我们的service在单独的进程中,在service中调用JNI的代码,然后fork出一个进程,service原创 2015-04-25 17:36:55 · 10105 阅读 · 8 评论 -
android TV app开发-准备环境,打开adb
打算在android TV上做一个应用玩一下,ok,首先准备环境 我家里有一台小米电视2,可是默认的adb是不打开的,搜索了一下,发现基本都是要root. 只是settings的app打不开,想办法打开就好了吧 于是自己写了个简单的app,放到电视上,就一个功能打开设置app 代码如下Intent i = new Intent(Settings.ACTION_SETTINGS);原创 2015-03-24 23:12:40 · 10303 阅读 · 3 评论 -
ContentObserver简单笔记
当我们使用ContentResolver修改了数据以后,想要通知其他人,那么使用ContentObserver就很必要了. 说一下注册的Uri与提醒的Uri的一个关系 比方说有一个content://com.example.textview.provider/test/more的Uri,如果我们注册了content://com.example.textview.provider/test/mor原创 2015-03-23 19:16:00 · 1897 阅读 · 0 评论 -
Android application framework 分析[in process]
application activityapplication serviceapplication UI systemapplication sdk toolJVM1 activitythe first JVM instance => zygote app_main->AndroidRuntime(now start jvm instance,and start to load zyog原创 2015-03-12 19:31:20 · 2176 阅读 · 0 评论 -
如何写一个native层的service
android的service大概有这么几种形式,Java service ,native service,或者Java层通过某种通信方式比如socket和demon交互. Java层的aidl很方便,写socket的demon方式也很好理解,native的就显得稍微麻烦一点,咱们通过一个例子来说一下,首先说我们不讲解binder的内部机制…. 我们打算写个简单的service,只提供set和g原创 2015-03-07 16:26:54 · 2474 阅读 · 0 评论 -
start a android App from scratch
一直用eclipse写点小程序,现在原创 2014-09-20 16:15:55 · 1233 阅读 · 0 评论 -
handler分析
面试时候经常被问到 handler是什么,说说你的理解...被问到这些心里就发毛,因为不知道从什么深度来说,说的深了,自己也没读过源码,细节的东西说不清反而不好,说的浅了,这问题也没啥意义了..从java层的代码来看看,handler和相关的一系列的类到底是怎么回事先从handlerthread来看,handler也是作用在thread上的,看看handlerthread有啥不一样的原创 2015-01-28 19:35:06 · 2079 阅读 · 1 评论 -
7-Particle Explosion with Android
想知道爆炸式怎么制作的吗?让我们抄个近道,试着来实现一个基本的例子爆炸爆炸就是一堆粒子在屏幕上面分散开来,简单起见,我们认为所有的例子都是来自于一个点想想烟火,小小的火箭上升,然后爆炸为成百的小星星,最终落下时候消失。为了简单一点,我们会造一些粒子,我们会把他们放到一个位置,给他们随机的力量,这个值是向量值,也就是说它既有方向,也有大小。大小决定速度,方向决定粒子的方向。粒子翻译 2013-01-17 18:29:11 · 1365 阅读 · 0 评论 -
Nuplayer源代码分析1
Android升级到4.0.3以后流媒体的播放有了很大的改变,不用以前的awesomeplayer的东西了,自己单独写了一个模块,video和audio都是自己单独的,尝试分析一下 4.0.1的时候Nuplayer是http相关链接的播放器,到了4.0.3的时候Nuplayer成了rtsp的播放器,而http又回到了awesomeplayer的部分,真是诡异,但是Nuplayer有ht原创 2012-01-30 19:07:33 · 9645 阅读 · 2 评论 -
MediaPlayer增加字幕功能
想在Android的MediaPlayer增加字幕功能,下面是一些笔记, 没有服务器的支持,就只是做了个本地的解析,如果一开始就解析全部的数据,例如几百条的数据,很容易造成问题,出现ANR,想起来MediaPlayer在解析文件的时候有个nucachedfilesource2的东西,可以分批次load文件到内存加快播放速度,就是这么做了,在播放位置到了数据尾端的时候再load进来原创 2011-12-06 23:14:17 · 2942 阅读 · 3 评论 -
android 4.0 codec的一点变化
1 加入了avi和flac的extractor,原生支持了avi和flac的格式2 codec方式改变,在2.3上面有softwarecodec还是直接继承MediaSource,在4.0上面所有的codec都是使用omx方式,在加载omx plugin的时候分成了vendor的plugin,就是hardware下面的自定义plugin,和softplugin,就是2,.3的softwar原创 2011-11-30 16:52:29 · 2469 阅读 · 1 评论 -
Android 4.0编译完整的apk
下载完android 4.0代码,模拟器里面的gallery不是3D的,想编译一个看看效果,用mmm编译Gallery2,可是out目录下面都是apk和odex,这是为了加快运行速度,把dex分出来做的预处理,可是我想要个完整的apk来安装,网上有结合的办法,但是总会有个编译的选项来编译出完整的apk吧,要不然appers就没法混了 搜索了一下源代码,发现了一个选项,LOCAL_原创 2011-11-30 16:46:12 · 2475 阅读 · 4 评论 -
android mediaplayer的尺寸缩放
android系统默认的播放器的surfaceview的尺寸在开始就会计算好,并且无法更改,需要做全屏播放功能就需要自己继承videoview类来扩充功能了主要就是onMeasure这个函数{ if ( mVideoWidth * height > width * mVideoHeight ) { //Log.i("@@@"原创 2011-11-03 18:32:07 · 3838 阅读 · 0 评论 -
c++ java的内部嵌套类
android的native framework用了很多c++的嵌套类,而java的framework更是用了很多的内部嵌套类,看了一些书和代码 做个总结1. java的非静态内部类有个外部类的引用outer,使用这个变量可以引用外部的所有变量,包括private2..静态的java内部类也叫做嵌套类,静态的内部类就没有外部的引用了,但是也只能调用外部的静态方法和变量3. 匿名内部类经原创 2011-10-31 16:08:36 · 1039 阅读 · 0 评论 -
stagefright的codec---2
最重要的还是openmax的处理,只是看了一天,很多东西还需要再细看一下 openmax 的IL层规定了一些接口,openmax分为core和instance,core加载instance,omax instance实现IL接口,提供给openmax框架调用,而omax instance就是特定平台实现自己codec的具体地方。 下面代码是qcom平台的建立自己om原创 2011-10-21 19:19:46 · 1451 阅读 · 0 评论 -
stagefright的codec---1
多媒体文件经过解析后,需要根据mime寻找适合的codec,2.3的系统有两种方式 SoftwareCodec和omx的node codec,后者可以结合特殊硬件做优化处理,前者感觉就是比较标准的软解码。下面是代码omxcodec.cpp omxcodec::createVector matchingCodecs;------系统对于某种mime的所有codec集合 fi原创 2011-10-20 11:35:10 · 1677 阅读 · 1 评论 -
Nuplayer源代码分析2
先说一下我了解的openmax,omx的数据流动是port方式,内存分配和释放都在port上面进行。在android上面omx作为一个binder,是和mediaserver在同一个process。就是了解这么一点点,有深入了再写 接着说nuplayer,nuplayer的render方式为什么会换成现在这种方式,说一下我的理解,因为代码还没看完,只是感觉是这样的,有错误后面再修复原创 2012-02-10 14:48:36 · 4241 阅读 · 0 评论 -
AwesomePlayer 源代码分析
1,AwesomeEvent 这个是同步相应的事件而做的一个类,跟framework层的looper和handler作用相似,player有一些异步操作比如解析文件,这些操作比较耗时,做异步操作然后做回调会有更好的用户体验struct AwesomeEvent : public TimedEventQueue::Event 继承自TimedEventQueue::Event ,关原创 2011-11-01 17:08:27 · 5696 阅读 · 4 评论 -
移植FFmpeg到android ics
想弄个小东西,自己练习一下,就想到把FFmpeg移植到android上面 网上有现成的2.2的移植,可以下载下来,链接https://github.com/havlenapetr,里面的ffmpeg和framework下面的libaudio和libviedo两个so,就是全部的东西。 看过一些东西,都说不开放某些代码,挺没劲的,人家都已经放出全部代码了,有什么藏匿的。原创 2012-04-20 16:36:26 · 2942 阅读 · 0 评论 -
6--Sprite Animation with Android
If you followed the series so far we are pretty knowledgable in handling touches, displaying images and moving them around.目前为止,我们已经知道了处理触摸时间,画图,移动他们But a moving image it’s a pretty dull sight as翻译 2013-01-14 15:19:32 · 1117 阅读 · 0 评论 -
5-The Game Loop
moving th image 跟display差不多,也不翻译了游戏循环式每个游戏的心跳。我们用过一次非常基础的,它没有控制游戏状态速度的更新,也没有控制哪些帧要渲染。简单的说,大部分的游戏循环都是在循环里面执行一些指令,知道我们发信号通知结束,通常是设置running为false1 boolean running = true; 2 while (!running)翻译 2013-01-11 15:59:09 · 1085 阅读 · 0 评论 -
3-A Basic Game Loop
到目前为止,我们已经理解了游戏的结构。即使只是简单的知道了接收输入,更新内部状态,然后渲染到屏幕上,当然也会播放声音或者震动一下 让我们保持简单,看下面的图表android上面任何事情都是发生在Activity内部,Activity会新建一个view,view是一切事情发生的地方,像触摸和最后的图片显示。把activity想成桌子,而view是一张白纸让我们画东西,我们用铅笔画图,翻译 2013-01-10 17:46:27 · 1140 阅读 · 0 评论 -
4-Displaying Images with Android
在开始实际的游戏循环之前,让我们先显示一些图片,使得我们能够得到一些尺寸的概念(不太清楚这句什么意思)。如果还没有看到线程更新屏幕的内容,强烈推荐先看一下(上篇博客)在android上面显示图片非常的简单为了让问题简单,我们在左上角显示图形,我们需要 一个图片,我更喜欢png,我创建了一个名为droid_1.png的文件,大小是20*20 像素,你可以选择自己喜欢的工具,我用gimp或翻译 2013-01-11 11:10:09 · 1039 阅读 · 0 评论 -
2-A Basic Game Architecture(基本游戏架构)
第二篇太简单了,android 开发入门,就不翻译了,直接第三篇了,基本游戏架构我们的安卓程序能运行了,你可能想知道到底什么类型的程序是游戏,说一下我的理解,下面的表展示了一个游戏的架构 android平台的游戏架构我们的例子中触摸屏幕是输入,但是也可能是物理键盘,麦克风,翻译 2013-01-10 16:00:30 · 1194 阅读 · 0 评论 -
翻译一个关于Android游戏开发的系列文章---1-The Game Idea
找到一个http://obviam.net/index.php/step-1-the-game-idea/,非常好的android游戏入门文章,想翻译下来 先翻译第一篇The Game Idea 这是最困难的部分,因为我时间有限,所以我要选择一个短时间内可实现的想法,并且包含一个动作游戏的全部要素 所以我为游戏想了一个故事,故事是这样的末日就要到来,外星球的邪恶机器翻译 2013-01-10 15:10:48 · 1509 阅读 · 1 评论 -
android mediaplayer prepare
android 的mediaplayer的prepare过程有很多动作,比方demuxer,find codec,如果时间较长就会出现ANR,android的系统会在5秒检测主线程是否有响应,没有就会出现错误提示,用户体验非常的不好。所以系统如果有parepareAsync提供的原创 2011-09-01 16:49:16 · 2409 阅读 · 1 评论