自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

太妃糖的专栏

致力于android 系统, framework, app的研究

  • 博客(40)
  • 资源 (3)
  • 收藏
  • 关注

原创 微信公众号添加自定义菜单

好久好久没有更新博客,确实懒啊!正好今天闲下来,总结下如何在微信公众号里面添加自定义菜单!自定义菜单?微信公众号里面不是有个GUI的添加菜单选项吗,用这个不就行了吗?是的,用GUI的添加菜单选择可以实现,但是由局限性,无法定义事件,也无法跟进事件进行相应的处理!比如在公众号里面添加微信排行榜功能,那么如何实现类似的功能呢?1, 添加自定义菜单  需要

2016-07-10 16:06:41 5398 1

原创 Android Audio Overview

Android Audio Overview音乐播放器是手机中重要的娱乐应用,我们在开发播放器有可能用到mediaplayer,或者AudioTrack来播放音频文件,对应应用开发者来说,我们只要了解了暴露出来的API就可以了,但是光了解API还是不能全面的理解设计者的理念和思路,无法清楚音频如何选择什么的设备进行输出。下面我们本着探讨的目的来了解下audio的架构,完善我们对audio的了解

2013-08-13 09:22:30 7790 1

原创 android多媒体框架之流媒体具体流程篇3----base on jellybean(十三)

距离上一篇文章好久了,一直没更新上,在此深表歉意。上一篇我们讲到了从web server 中获取了sessiondescription,并解析出了media server的路径和一些基本的媒体信息。下面我们开始讲述如何跟mediaserver建立连接并控制服务器端和客户端以达到播放,暂停,停止的目的。首先跟media server建立连接 SETUP:具体的格式如下(UDP):C-

2013-05-06 13:53:37 8025 9

原创 Android Socket 实现

Android Socket 实现android是基于linux的操作系统,android中socket的实现也自然是基于linux的标准来。socket在android中的应用是非常广泛的,特别是在framework及以下层。那什么是socket?socket的类型有哪些?socket有哪些基本函数?我们都知道本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:

2013-05-06 10:21:12 7568

原创 android多媒体框架之流媒体具体流程篇2----base on jellybean(十二)

上篇我们讲了流媒体RTSP部分的setdataSource方法,prepare没有实质的东西,我们直接讲start方法, 这个方法是它的核心方法,比较复杂,我们先来看下整个start方法的时序图吧,让大家有个大概的了解:  跟踪下代码,看看start里面有什么名堂?NuPlayer.cppvoid NuPlayer::start() {    (new AMessage

2012-11-09 10:18:34 12500 16

原创 android多媒体框架之流媒体具体流程篇1----base on jellybean(十一)

病了两周,一吃医生开的药就加重,NND以后不去那儿看病了,最近好多了但人也懒了,也好久没有更新博文了,难道我的计划要这样的搁浅了?NO!生命不息,笔耕不辍,哈哈,有点夸大了,嘚吧嘚吧啥,进入正题.上面我们把流媒体的框架和里面的消息机制讲了一遍,下面我们开搞流程了。我们首先探讨android里的主流支持的RTSP相关的流程。RTSP协议相关的,不了解的,可以回头去看看:http://blog

2012-10-29 11:21:33 12908 3

原创 android多媒体框架之流媒体AHandler消息机制----base on jellybean(十)

为什么我们要谈论流媒体的消息机制呢?因为在流媒体中,类似于我们写APP的时候,为了不阻塞UI线程,我们把利用handler,把UI线程分开异步执行,使用handler去执行某项比较费时的操作,然后异步更新UI线程。流媒体中也是类似的,因为联网,codec都很费时,需要异步执行。handler是java的实现机制,而我们下面要讲的AHandler就是基于C++的实现了。我们知道handler消息

2012-10-12 10:22:18 16980 7

原创 android多媒体框架之流媒体框架----base on jellybean(九)

android流媒体框架是从Gingerbread android2.3的时候加入的,其核心就是nuplayer。android 流媒体在4.1上资源文件主要分为httplivesource,rtspsource,genericsource.genericsource是4.1上加入的。其中Rtsp流和httplive流是最主要的,两者有本质的区别。RTSP source是客户机在向视频服务器请

2012-10-09 10:56:40 21303 4

原创 android多媒体框架之流媒体----base on jellybean(八)

----------------------------------------转载请注明出处http://blog.csdn.net/tjy1985/article/details/7996121-------------------------------------------------------      从这篇开始我们将进入流媒体的环节,流媒体在android中有nuplayer

2012-09-19 15:06:59 28231 7

原创 android 多媒体文件之mp4分析(续)---base on jellybean(七)

Sample Table Box(stbl)“stbl”几乎是普通的MP4文件中最复杂的一个box了。sample是媒体数据存储的单位,存储在media的chunk中,chunk和sample的长度均可互不相同。chunk是几个sample的集合。“stbl”包含了关于track中sample所有时间和位置的信息,以及sample的编解码等信息。利用这个表,可以解释sample的时序、类型、大

2012-09-14 14:23:09 11329 1

原创 android 多媒体文件之mp4分析---base on jellybean(六)

我们讲多媒体,涉及到的最多的就是MP4文件和MP3文件了,但是我们对这两个文件的格式了解多少呢,它的由有哪些部分部分组成呢?它的核心部件是哪些?它哪些部分是供解码器去解析的呢?带着这些疑问,我们首先来探索下MP4文件。我们首先用MP4Info这个工具来看下MP4的大貌: 从上图我们可以看到MP4文件中的所有数据都装在box中,也就是说MP4文件由若干个box组成,每个box有类型和

2012-09-10 15:10:01 10840 2

原创 android多媒体本地播放流程video playback--base on jellybean (五)

前面两篇文章,我们分别讲了setdataSource和prepare的过程,获得了mVideoTrack,mAudioTrack,mVideoSourc,mAudioSource,前两个来自于setdataSource过程,后面两是prepare。 status_t AwesomePlayer::setDataSource_l(const sp &extractor) {…if (!h

2012-09-10 15:04:44 13554 6

原创 android多媒体本地播放流程video playback--base on jellybean (四)

上一篇我们讲了mediaplayer播放的第一步骤setdataSource,下面我们来讲解preparesync的流程,在prepare前我们还有setDisplay这一步,即获取surfacetexture来进行画面的展示setVideoSurface(JNIEnv *env, jobject thiz, jobject jsurface, jboolean mediaPlayerMust

2012-08-30 17:11:25 22844 8

原创 多媒体的一些基本概念

今天同事突然问我了一些多媒体基本概念的问题,感觉好多都是不太清楚,既然不清楚那就补一补吧。    码率:也叫比特率,表示经过压缩编码后的视音频数据每秒需要用多少个比特来表示,即把每秒显示的图像进行压缩后的数据量,一般采用的单位是kbps即千位每秒。一般来说码率越大,处理出来的文件就越接近原始文件,但文件体积与码率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这

2012-08-29 22:41:56 11371 7

原创 android多媒体本地播放流程video playback--base on jellybean (三)

上一篇我们讲了多媒体的总体框架,本章我们先来讨论媒体文件的本地播放,也是手机的基本功能。现在市面上的手机配置越来越高,支持高清视频(1920x1080P)已不在话下。那现在android主流播放器都支持哪些媒体格式呢?一般来说mp3,mp4,m4a,m4v,amr等大众格式都是支持的,具体支持成什么样这得看手机厂商和芯片厂商了。具体格式大全可以看framework/base/media/java/

2012-08-27 22:59:23 20731 6

原创 Android Multimedia Framework 架构--base on jellybean(二)

转载请注明出处:太妃糖出品。哈哈      我们学习一种新事物必然首先都要对该事物要有个大体的了解,熟悉它的整体架构,然后进行划分归类,接下来才是各个击破,逐步学习乃至掌握。对于要学习android Multimedia的人来说也是如此,先来个总括吧 !我打算分三部分来讲解,请听我娓娓道来....一:多媒体简介     为啥要讲多媒体的概念呢?可能很多人都对这个名称解释不怎么了解,所以

2012-08-22 22:27:10 25808 20

原创 Android Multimedia Framework overview(多媒体框架概述)--base on jellybean(一)

不知为啥今晚突然脑海中闪现出一个念头:写博客!原因有二,其一就是记录下自己的学习所得,巩固自己的知识,温故而知新吧,以前都是光看光想,都没有记录,而且不写下来,领悟估计就差点了,好记忆不如烂笔头啊!其二就是为自己的码农生涯留点纪念,以后也可以给孩子看看自己老爸写的文章!虽说写得不咋地        csdn的博客好久没有更新博文了,今天一进来竟然都有1W多的总访问量,让我很是诧异!让我有了坚持

2012-08-21 22:08:13 19281 10

原创 ION 内存管理

what is ION? ION  内存管理从android4.0开始被引入ION模块是可扩展的(API都是统一的),支持各种形式的内存分配方式,可以表述不同的硬件资源和他们的一些限制ION 支持连续与不连续内存的分配ION 给Kernel and User space processes提供了相应的APIs 当前支持的memory typeION_HEAP_TYPE_CARV

2012-05-10 16:21:56 17089 2

转载 Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的源代码。细心的读者会发现,这几篇文章分析的Binder接口都是基于C/C++语言来实现的,但是我们在编写应用程序都是基于Java语言的,那么,我们如何使用Java语言来使用系统的Binder机制来进行进程间通信呢?这就是本文要介绍的Android系统应用程序框架

2012-03-29 20:21:43 5600

转载 Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析

在上一篇文章中,我们分析了Android系统进程间通信机制Binder中的Server在启动过程使用Service Manager的addService接口把自己添加到Service Manager守护过程中接受管理。在这一篇文章中,我们将深入到Binder驱动程序源代码去分析Client是如何通过Service Manager的getService接口中来获得Server远程接口的。Client

2012-03-29 20:19:43 5255

转载 Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析

在前面一篇文章浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路中,介绍了在Android系统中Binder进程间通信机制中的Server角色是如何获得Service Manager远程接口的,即defaultServiceManager函数的实现。Server获得了Service Manager远程接口之后,就要

2012-03-29 20:17:06 3082

转载 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

在前面一篇文章浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路中,介绍了Service Manager是如何成为Binder机制的守护进程的。既然作为守护进程,Service Manager的职责当然就是为Server和Client服务了。那么,Server和Client如何获得Service Manager接口,进而享受它提供的服务呢?本文

2012-03-29 20:12:50 7678

转载 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路

上一篇文章Android进程间通信(IPC)机制Binder简要介绍和学习计划简要介绍了Android系统进程间通信机制Binder的总体架构,它由Client、Server、Service Manager和驱动程序Binder四个组件构成。本文着重介绍组件Service Manager,它是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Serve

2012-03-29 20:12:11 1723 1

转载 Android进程间通信(IPC)机制Binder简要介绍和学习计划

在Android系统中,每一个应用程序都是由一些Activity和Service组成的,一般Service运行在独立的进程中,而Activity有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者Service是如何通信的呢?这就是本文中要介绍的Binder进程间通信机制了。        我们知道,Android系统是基于Linux内核的,而Lin

2012-03-29 20:08:20 1813

原创 OpenMax IL: component 概述

OpenMax IL 有四个部分组成:         客户端(Client):OpenMax IL的调用者 组件(Component):OpenMax IL的单元,每一个组件实现一种功能 端口(Port):组件的输入输出接口 隧道化(Tunneled):让两个组件直接连接的方式OpenMax IL 中重要的组成部分是component,component是OpenMa

2012-03-28 14:27:13 6101 1

原创 video/audio playback:prepare & start

prepare:启动mQueue,对http://,rtsp://gtalk/,fmradio://rx之类的url进行mAudioTrack/mVideoTrack分离,并根据mAudioTrack/mVideoTrack编码类型选择相应的decode1.framework/base/media/libmediaplayerservice/MediaPlayerService.cpp

2012-03-27 11:25:00 4048 1

原创 video/audio playback:setDataSource

实现video/audio playerback,需要经过如下步骤:MediaPlayer mp = new MediaPlayer();   mp.setDataSource(String URL/FILE_PATH);   mp.prepare();   mp.start(); 首先是setDataSource:  创建player,如果url是以content

2012-03-27 11:21:23 7893 1

原创 OMXCodec与OMX事件处理流程

学习了解Mutilmedia Framework有一段时间了,今天闲下来稍微整理整理。OMXCodec.cpp类属于libstagefright,在整个MM PF 相当OMX的适配层,供awesomeplayer调用,而OMX.cpp,OMXNoteInstance.cpp等相当于OpenMax中的OpenMax IL,首先讲下OMXCodec与OMX callback事件的处理流程。先看整个流程

2012-03-27 11:12:13 34309 7

原创 毕业三年回忆录

距离2008年11月从学校里出来,已经有3年多,期间经历了很多的挫折和感悟。下面先来缕一缕我的经历吧。 1: 2008.11~2009.06, 摆脱青涩,开始北漂 08年11月,我通过宣讲会踏上了去往天津基地培训的日子,离别那天,望着女友离去哭泣的背影 ,我有种莫名的伤感,但是为了她,我要走出去开创自己的事业并心里默念:离别只是短暂的。去天津待了一周我就被选中派到北京,

2012-02-28 15:26:49 4091 12

原创 android sw watchdog and How to Debug

Android 平台实现了一个软件的WatchDog来监护SystemServer。SystemServer无疑是Android平台中最重要的进程了,里面运行了整个平台中绝大多数的服务。在这个进程中运行着近50个线程,任何一个线程死掉都可能导致整个系统死掉。SystemServer退出反而问题不大,因为 init进程会重新启动它,但是它死锁就麻烦了,因为整个系统就没法动了。在 System

2012-02-10 10:56:09 4670

原创 android Call的基本知识

call就是平时我们常用的通话功能,最基本的就是来电incoming call,拨打电话outgoing call,挂断电话hangupcall,一般来说拨打一方成为主叫方,接听方为被叫方。Call模块常用的一些名词有:1.       dialing call拨打一路电话,对方尚未接听,主叫方等待被交接听的时候的状态即为dialing状态2.       active call激

2012-02-02 14:20:18 10789 5

原创 android 短信的接收和发送处理

一 初始化 手机开机初始化调用GSMPhone 构造函数。GSMPhone (Context context, CommandsInterface ci, PhoneNotifier notifier, boolean unitTestMode)创建  mSMS = new GsmSMSDispatcher(this);该类继承于SMSDispatcher。类SMSDispat

2012-02-02 14:00:59 4896 1

原创 Android telephony MMS 学习笔记

本文主要从以下几个方面来学习MMS在android系统中的处理:MMS初始化、MMS发送、MMS接收(包括push MMS接收和从MMSC中提取MMS内容)、MMS存储/删除等数据操作。Android MMS基本知识点一、MMS概述MMS是在短消息业务基础上发展起来的一种消息业务,它可以用于传送文字、图片、动画、音频和视频等多媒体信息。MMS采用"存储转发"的技术,用户创建的信息能够自

2012-02-02 13:58:05 16199 4

转载 Android同步类:Mutex和Condition

Android提供了两个封装好的同步类,它们是Mutex和Condition。这是重量级的同步技术,一般内核都会有对应的支持。另外,OS还提供了简单的原子操作,这些也算是同步技术中的一种。下面分别来介绍这三种东西。1. 互斥类—MutexMutex是互斥类,用于多线程访问同一个资源的时候,保证一次只有一个线程能访问该资源。在《Windows核心编程》①一书中,对于这种互斥访问有一个很形象的

2012-02-02 10:20:12 26068 1

转载 Android context(Application/Activity)与内存泄露

android中的context可以做很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。 比如一个activity的onCreate: [java] view plaincopyp

2012-02-02 09:54:34 1640

原创 Android GUI Architecture

androidGUI Architecture as follow:androidGUI系统由C语言的框架和JAVA语言的框架组成。C语言的核心如下:PixelFlingerlibui(框架库)SurfaceFlinger(Surface的管理)Skia图形图像引擎OpenGL3D引擎

2012-02-01 15:00:21 9210

原创 android的启动过程

<!--p {margin-bottom:0.08in}-->Android的启动过程可以分为两个阶段,第一阶段是Linux的启动,第二阶段才是Android的启动,下面我们分别来了解一下具体的过程。本篇我们主要是研究android的启动过程,linu

2011-09-16 14:54:55 2000

原创 浅谈ANR及如何分析解决ANR(3)

<!--h1 {margin-top:0.33in; margin-bottom:0in; color:rgb(54,95,145)}h1.western {font-family:"Cambria",serif; font-size:14pt}h1.cjk {font-family:"DejaVu Sans"; font-style:normal; f

2011-09-15 13:54:01 9483

原创 浅谈ANR及如何分析解决ANR(2)

<!--p {margin-bottom:0.08in}-->七:如何去分析ANR先看个LOG:04-01 13:12:11.572 I/InputDispatcher( 220): Application is not responding:

2011-09-15 10:52:33 19966 3

原创 浅谈ANR及如何分析解决ANR(1)

<!--p {margin-bottom:0.08in}-->一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5

2011-09-15 10:51:04 7977 2

green--dao

Android 数据库 greedDao 很实用的创建数据库jar

2015-06-01

PPT制作教程

ppt制作教程

2012-03-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除