
android源码
天才2012
天生我‘才’必有用
展开
-
Android5.0+ Camera专栏终结
谨以此文于2021/5/24日结束整个Android Camera专栏,术业有专攻,谢谢大家。原创 2021-05-24 16:43:10 · 628 阅读 · 2 评论 -
Android新编译的内核驱动模块不能被init加载原因解决
遇到一个内核驱动在手动编译后,原创 2014-08-11 15:53:45 · 3441 阅读 · 0 评论 -
Android系统编译时遇到的几个.mk的疑惑。
在Android4.2的源码Build/prduct_config.mk里面遇到一个遗憾:# Convert a short name like "sooner" into the path to the product# file defining that product.#INTERNAL_PRODUCT := $(call resolve-short-product-name, $(原创 2014-08-07 20:58:31 · 8038 阅读 · 0 评论 -
android4.2.2的stagefright架构下基于SurfaceFlinger的视频解码输出缓存创建机制
之前几文在分析OMX_Codec的数据流时主要以对输入缓存区的说明为主,这里单独是为了加深对SurfaceFlinger的理解,特地将用于渲染的输出缓存区申请等拿出来做一次分析,看其是如何完成创建,并通知底层的解码器组件进行解码输出的。该部分的核心内容需要有较强的surfaceflinger显示模块相关的知识点。原创 2014-05-26 10:54:39 · 5995 阅读 · 2 评论 -
Android4.2.2多媒体架构MediaPlay的创建过程分析(二):解析器的创建
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email: gzzaigcn2012@gmail.com 在上一文中,我们分析到setDataSource_pre()函数最终实际返回的是StagefrightPlayer类(class StagefrightPlayer : public MediaPlayerInterface).1 .继续分析原创 2014-05-20 22:29:06 · 3317 阅读 · 0 评论 -
谷歌全线布局生态系统:新一代Android(L)亮相
新浪手机讯 6月26日凌晨消息,谷歌公司在美国旧金山召开每年一度的I/O开发者大会,发布全新移动操作系统Android L、车载系统、智能手表系统以及低价安卓手机参考方案Android One等。此次大会谷歌全线布局,旨在形成安卓闭环,从移动设备、穿戴设备、智能家居全方位打造安卓生态圈。 Android L操作系统:Android L采用全新设计语言 Android新一代操作系统被称为“L”,转载 2014-06-26 09:45:48 · 2317 阅读 · 0 评论 -
Android4.2.2的Stagefright中编解码器数据流的维护
前沿:在前面的博文中,基本提到的是stagefright相关的控制流,具体分析了android架构中的MediaExtractor、AwesomePlayer、StagefrightPlayer、OMXCodec等的创建,底层OMXNodinstance实例的创建。分析了OMX最底层插件库、编解码器组件的架构以及如何创建属于我们自己的OMX Plugin。分析源码架构的另一个关键是数据流的分析,从原创 2014-05-23 21:40:27 · 4268 阅读 · 2 评论 -
Android4.2.2下Stagefright下OMX编解码器组件的控制流
之所以单独把这块内容提炼出来,在于其具备的一定的层次性,结构上具备统一性,API函数的设计需要实现OMX架构独有的接口。1. 在上一博文Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件 中我们提到,通过Binder架构,在MPS的线程上创建完一个实际的编解码器节点后,获取到了一个node:node_id。如下所示将会根据相关的节点信息,创建一个MPS原创 2014-05-22 20:20:33 · 4290 阅读 · 0 评论 -
无处不在的Android,开发者的春天,话说现在是夏天啊
转账于http://news.hiapk.com/anzhuo/20140625/1518437.html转载 2014-06-26 09:40:54 · 1975 阅读 · 0 评论 -
Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email: gzzaigcn2012@gmail.com 在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享。原创 2014-05-21 19:44:08 · 7088 阅读 · 0 评论 -
Android4.2.2多媒体架构MediaPlay的创建过程分析(一)
前沿:回首往事,记得2012年的时候,那时还年少不知,就研究过android的多媒体框架,那是还是2.3的源码,看过stagefright的源码,记得当时是特别的痛苦。而今,再次看起这个多媒体模块的代码,突然间觉得豁然开朗,模块间的层次清晰,有据可依,遇到的疑问往往都能迎刃而解。我想,也许这就是2年多来的进步与经验吧。感谢时间,让我学会了成才。原创 2014-05-20 15:38:51 · 4153 阅读 · 0 评论 -
Android已有的原生Camera框架中添加自己的API的实现方案。
在过去的2个月里,基本定制并评估完了项目所原创 2014-05-13 14:59:07 · 2968 阅读 · 0 评论 -
我心所向之Android4.2 视频采集和显示模块序言
前沿:鉴于项目开发的需求,2014年开年到现在,一直在学习Android的视频采集与显示系统在底层的实现机制,通过零基础来死磕这2个模块的Code,主要参考的Blog,书籍有《老罗的Android之旅》,《邓凡平的深入理解Android卷I和II》。Blog记录的内容主要是自己学习与熟悉时,遇到的困难与疑惑,以及Android架构中特有的设计思想,编码方式等等,在此和所以嵌入式开发的爱好者一起交流原创 2014-04-08 13:22:37 · 3009 阅读 · 2 评论 -
Android4.2.2 SurfaceFlinger之图形渲染queueBuffer实现和VSYNC的存在感
前一博文总结了Android4.2.2 SurfaceFlinger之图形缓存区申请与分配dequeueBuffer的实现,由于受到OpenGL Es的中介作用(内部实现图层绘制并写入到分配好的图形缓存中去),eglSwapBuffers()函数内部的实现就是如此。好了作为生产者以及使用dequeueBuffer获取了图形缓存并写入了绘图数据,这下就该是渲染的过程queueBuffer来看看他的实原创 2014-03-25 22:24:11 · 7477 阅读 · 3 评论 -
Android4.2.2 SurfaceFlinger本地的FramebufferSurface实现真正的显示
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2012@gmail.comAndroid源码版本Version:4.2.2; 硬件平台 全志A31 FrameBufferSurface类,SurfaceFlinger处的本地的帧缓存,实际意义上的显存FramebufferSurface::FramebufferSurfa原创 2014-03-26 20:58:55 · 8924 阅读 · 25 评论 -
sysfs与ramfs、tmpfs、devtmpfs的一点区别
ramfs在挂载以后,其内部以dentry和inode为核心层次维护。sysfs在挂载后,一般只会把挂载点的dentry和inode进行创建,并初始化该sys目录的inode->i_op为sysfs_dir_inode_operations.这之后所有的sys下文件的读写访问操作,都需要经过look_up先找到文件路径,并逐一给每个目录建立inode与dentry,是个动态的过程,只有这个时候才会原创 2015-08-06 20:33:54 · 13545 阅读 · 0 评论 -
Android4.2.2 Camer系统架构图(HAL和回调处理)
原创 2014-02-19 22:26:10 · 3725 阅读 · 5 评论 -
android HAL接口的编码小结
定义一个modulestruct xxx_module_t { hw_module_t common; xxx,这里的主要是一些在未open时就可以操作该模块的ops接口,有时候可以不填充}struct xxx_mdoule HAL_MODULE_INFO_SYM ={ 填充该结构体,以填充hw_module_t为主}//所有的hal模块的名字都一样,该结构在编译时会转为原创 2015-09-25 20:06:14 · 2880 阅读 · 5 评论 -
Android Logcat输出为何能自动换行输出的原因以及多\n的作用
1. Android Logcat的是建立在Android的日志系统之上的,日志系统包括内核驱动模块Logger(drivers/staging/android)和liblog.so(源码位于/system/core/liblog下),liblog.so主要提供日志数据的写入与读取接口,向下负责操作底层log驱动,向上一是提供ALOG功能给Native C与java提供log写入,另一方面是提供给原创 2016-05-13 17:35:15 · 10812 阅读 · 0 评论 -
Android集成一个新产品时,lunch的product name和device name注意事项
Android系统lunch一个当前的Product大概流程包含以下几个部分:1. lunch确定TARGET_PRODUCT,一般位于vendor/device/build/target/product中的vendorsetup.sh脚本来定义分别有user/eng/userdebug。2. 开发check product的合理性。通过加载vendor/device/build/target/p原创 2015-12-17 16:56:22 · 6511 阅读 · 2 评论 -
AS import工程出现Gradle sync failed: Gradle version 2.2 is required. Current version is 2.10
原因在于SDK的版本默认导入工程时使用的Gradle是2.10版本,位于:D:\android-studio\gradle而导入的工程由于版本比较低,使用到的gradle还是2.2的版本,故出现sync失败,采用的方式是修改当前打开工程后FIle->setting->Builde,Execution后修改当前的local gradle的Grable home.由于工程是使用到2.2的版本,其会自动原创 2016-03-30 17:13:21 · 6717 阅读 · 0 评论 -
Android系统编译环境初始化时Product产品的import-nodes过程
从执行make -f config,mk文件开始,config,mk作为当前的makefile文件,将会被make解析,一般make解析Makefile文件流程首先是加载其中include的各种其他mk文件,同时在加载的过程中会初始化自定义的变量,类似于预编译,在完成各种初始化后,确定目标以及依赖关系,最终执行目标输出动作。在config.mk中存在多个需要include的mk文件,这里关注pro原创 2015-12-18 22:14:49 · 4181 阅读 · 0 评论 -
Android Camera API2.0下全新的Camera FW/HAL架构简述
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2009@163.comSoftware:系统源码Android5.1前沿: 前面博文大多少总结的是Camera HAL1到HAL3的系统架构,但这些架构对于Camera APP开发来说依旧还是处于Camera API1.0的标准。而随着Camera3、HAL3原创 2015-10-28 16:21:05 · 11565 阅读 · 5 评论 -
Android Camera从Camera HAL1到Camera HAL3的过渡(已更新到Android6.0 HAL3.3)
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2009@163.comSoftware:Android5.11. Android系统中Camera模块的历史演变进度/**原创 2015-10-09 11:05:33 · 22126 阅读 · 6 评论 -
Android Camera API2中采用CameraMetadata用于从APP到HAL的参数交互
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2009@163.comSoftware:系统源码Android5.1原创 2015-10-29 18:18:32 · 19064 阅读 · 15 评论 -
从Android Bootanimation理解SurfaceFlinger的客户端建立
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2012@gmail.comAndroid源码版本Version:4.2.2; 硬件平台 全志A31 前面的几张博文都在记录SurfaceFLinger侧,也就是所谓的Server端,接下去就和大家来看看客户端是如何将要处理的图形信息请求SF来传递出去的呢原创 2014-03-25 00:14:19 · 5437 阅读 · 2 评论 -
论dts中的of_platform_populate如何选择性加载device node为platform device
1. 在比较新的linux内核中,设备树dts已经取代了传统的machine board device description,dts在内核中以各种device node的形式存在,而这些device node对于大部分的内核驱动模块platform_driver来说,最终需要有对应的platform device来与他匹配才可以完成一次device和driver的probe过程。所有有必要将d原创 2016-01-21 14:26:13 · 10064 阅读 · 0 评论 -
我心依旧之Android Camera模块FW/HAL3探学序
前沿: 目前对于Android Camera软硬件技术发展的主流方向是高像素、高帧率、多摄像头、超强的ISP以及各种视频图形处理算法等等。当前主流的Android系统中较为常见的Camera模块还均是采用HAL1.0的架构,但随着主处理器CPU/GPU/DDR/ISP/Sensor等硬件自身性能的不断提高,在复杂化软件架构的同时,可以为一些Camera应用增加新的用户功能且不会丢失原先的性能原创 2015-10-08 16:39:42 · 8690 阅读 · 1 评论 -
Android5.1中surface和CpuConsumer下生产者和消费者间的处理框架简述
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2009@163.comSoftware:系统源码Android5.1原创 2015-10-12 10:44:59 · 11320 阅读 · 0 评论 -
Android Camera HAL3中预览preview模式下的数据流
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:gzzaigcn2009@163.comSoftware:系统源码Android5.1前沿: 为了更好的梳理preview下buffer数据流的操作过程,前一文中对surface下的buffer相关的操作架构进行了描述。本文主要以此为基础,重点分析再Camera2Client和Came原创 2015-10-12 18:12:33 · 18187 阅读 · 1 评论 -
Android Camera HAL3中预览preview模式下的控制流
Android Camera HAL3中预览preview模式下的控制流原创 2015-10-10 16:07:39 · 16239 阅读 · 4 评论 -
Android API Level最新版本到6.0Platform Codenames, Versions, API Levels, and NDK Releases
http://source.android.com/source/build-numbers.html#platform-code-names-versions-api-levels-and-ndk-releasesCode nameVersionAPI levelMarshmallow6.0API level 23Lollipop5.1API level 22Lollipop5.0API lev原创 2015-10-23 09:39:56 · 3983 阅读 · 0 评论 -
Android4.2.2 SurfaceFlinger之图形缓存区申请与分配dequeueBuffer
接着前面的BootAnimation的启动过程,可以看到内部会涉及很多OpenGL ES的相关操作,OpenGL ES通过之前创建的具备有SurfaceTexture等的Surface类,来操作远端的SF来完成相关的图像渲染。这里主要涉及到ANativeWindow的2个核心回调函数,OpenGL ES在应用层的eglSwapBuffers就是调用了QueueBuffer和DequeueBuf原创 2014-03-25 00:15:28 · 12162 阅读 · 12 评论 -
Android4.2.2 SurfaceFlinger的相关事件和消息处理机制
在前面的博文中,可以发现在SurfaceFlinger中的OnFirstRef里面有如下函数:void SurfaceFlinger::onFirstRef(){ mEventQueue.init(this); run("SurfaceFlinger", PRIORITY_URGENT_DISPLAY);//启动一个新的thread线程,调用thread类的run函数原创 2014-03-25 00:13:39 · 4791 阅读 · 0 评论 -
Android4.2.2 CameraService服务启动和应用端camera初始化记录
之前的10篇博文主要是记录了Android4.2.2的SurfaceFlinger的相关内容,为何之前会投入那么多的时间,原因就在于之前在看camera的架构时,遇到了本地的ANativeWindow和Surface的内容。而这些是SurfaceFlinger中最常见的应用端的使用品。故而在学习完了SurfaceFlinger之后就来看看Camera的的架构内容。这里先和大家分享android4.原创 2014-04-02 15:15:50 · 6707 阅读 · 2 评论 -
android4.2的源码自动交叉编译器路径
当年玩2.3。以及4.0 ICS的时候repo的android源码的交叉编译路径都在/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin, 这次拿到4.2.2的源码发现竟然改了,在下面这个目录/home/A31_Android4.2.2/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6原创 2013-12-20 00:51:39 · 3709 阅读 · 0 评论 -
repo下载TI ICS4.0.3源码,小总结
这应该是第4次使用repo下载适合TI的DM3730 EVM板的android源码了,今天就仔细的来说一说.前几次下载的都是android2.3(Gingerbread),这次下载的android4.0.3(ICS),话说这ICS也出来才不久,发现TI对他的支持也没有Gingerbread2.3全面,对应的UG和DG和之前的2.3都差不多,我猜原因应该是他对底层的修改不大,最多是把文件系统给替换了原创 2012-08-01 13:56:45 · 2829 阅读 · 0 评论 -
Android Toolchain与Bionic Libc
android所用的Toolchain(即交叉编译工具链)可从下面的网址下载: http://android.kernel.org/pub/android-toolchain-20081019.tar.bz2。如果下载了完整的Android项目的源代码,则可以在“/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin”目录下找到交叉编译工具,比如And转载 2012-04-20 09:31:47 · 4346 阅读 · 0 评论 -
android ICS 系统启动之Logo相关学习总结
前几天把android init 进程看了一遍,这次回过头来再把android系统启动的Logo相关学习内容做一个梳理和总结。我们知道android系统的启动logo包括3个启动画面(这里不对uboot中的logo做解析),第一个是android系统启动时,linux内核启动阶段显示的logo,这个和普通的linux像类似。下面主要针对logo的相关修改以及一些配置和注意点做个总结。1.第一个原创 2012-09-16 19:52:18 · 3236 阅读 · 3 评论 -
android系统启动流程启动画面学习之init和init.rc分析
这段时间,断断续续的忙了一阵,因为父亲的去世也不情愿的休息了20来天,一点也没有办法。回来后重新开始学习android的启动流程。对android系统级别的学习,阅读代码成为了唯一的办法,不像应用程序开发来得那么明了快捷。之前花了好多时间才对android的binder驱动做了一定的了解,最近几天从android的启动画面,分析到了init这个内核最先启动的一个进程。参考内容包括老罗的androi原创 2012-09-14 21:44:38 · 5892 阅读 · 0 评论