介绍 开机动画,BootAnimation,就是Android手机开机郭晨各种以一个展示给用户的界面,实际是一个多个帧组成的动画,在界面上进行一帧一帧的播放,形成开机动画的效果. 本文针对Android5.1源码分析BootAnimation 源码分析 1. 文件产生 Android平台的开机动画由system/bin下的bootanimation文件完成,而这个文件产生于 frameworks/base/cmds/bootanimation/Android.mk LOCAL_PATH:= $(…
前言 上一篇主要讲解了BootAnimation是从何而来,如何启动,从开机,到SurfaceFlinger服务起来,然后到执行开机动画,如果要深入的看里面的代码,是需要花一定的时间的,我们旨在了解大致的流程,具体流程中的函数,变量意义,具体实现,读者请自研. 由来已知,执行待述~ ###BootAnimation执行 1. 代码位置 frameworks/base/cmds/bootanimation 目录中包含如下文件 文件名 作用 Android.mk mk文件,编译模块使用 AudioP…
前言 Android N版本最近发布,Nougat是否好吃,不得而知,慢慢看下~ 感谢AndroidXref这个网站,给开发者提供了大量的便捷~以后学习Android就靠它了. N版本上Framework关于Camera的一些改动 CameraServer N版本之前,CameraService是运行在MediaServer下的,这样存在一定的问题,因为MediaServer下同时还运行这其他的多媒体内容 M版本 /frameworks/av/media/mediaserver/main_med…
上一次讲解了一下startPreview过程,主要是为了画出一条大致的从上到下的线条,今天我们看一下Camera在Framework的sendCommand和dataCallback,这部分属于衔接过程,可以看到上下是如何交流沟通的. 首先,sendCommand Camera.java中并没有sendCommand方法,在Camera.cpp中存在sendCommand函数,所以这个sendCommand是从android_hardware_interface.cpp中开始使用的 androi…
Android5.0 Camera Framework 简介 CameraService启动 CameraService是在MediaServer启动过程中进行的 main_mediaserver.cpp (frameworks\av\media\mediaserver) ...... AudioFlinger::instantiate(); //audioflinger服务,音频相关 MediaPlayerService::instantiate(); //mediaplayerservice…
多线程编程 JAVA多线程方式 1. 继承Thread线程,实现run方法 2. 实现Runnable接口 JAVA单继承性,当我们想将一个已经继承了其他类的子类放到Thread中时,单继承的局限就体现出来了 但是可以实现多个接口,所以第二种方法相对于第一种来说灵活许多 其次,通过 new Thread(Runnable runnable).start() 启动线程的方式,若变量在runnable中定义,多个线程可以共用,因为来自同一个对象 比较适合多个相同程序代码的线程去处理同一资源的情况 A…
前言 MediaScanner是Android系统中针对媒体文件的扫描过程,将储存空间中的媒体文件通过扫描的方式遍历并存储在数据库中,然后通过MediaProvider提供接口使用,在Android多媒体中占有很重要的位置. 源码位置 packages\providers\mediaprovider frameworks\base\media\java\android\media frameworks\av\media\libmedia frameworks\base\media\jni fra…
前言 从之前的几篇文件,可以基本弄清楚 Camera从APK,经过framework的衔接,与HAL层进行交互,最终通过驱动完成Camera的一些动作. Camera层次分析 APP层 Framework层 库层 大致的框架图如下 从图中可以看到几个关键的地方: 1. APP从JAVA层过渡到CPP层中间通过JNI层的android_hardware_Camera.cpp文件实现,文件中主要涉及从java方法到cpp函数的映射关系,方便作出对应的处理: 2. Camera交互对象,从开始连接过程…
上一次讲解了一下CameraService的启动过程,今天梳理一下Camera预览的过程 StartPreview过程 首先,我们还是从应用层的使用入手 Camera.java (packages\apps\legacycamera\src\com\android\camera) Thread mCameraPreviewThread = new Thread(new Runnable() { public void run() { initializeCapabilities(); //初始化…
Android Framework 简介 简介 之前的研究太偏向应用层功能实现了,很多原理不了解没有详记,结果被很多公司技术人员鄙视了,为了减少自己的短板,重新复习了一遍C++.java.Android的开发,现在开始研究应用框架层了. 记录 1.下载源码,目录如下: 2.Android系统的层次如下: 3.项目目录简单分析如下: 4.telphony目录 文件 描述 CellIdentityCdma //描述电信通信标识 CellIdentityGsm 描述移动通信标识 CellIdentit…