- 博客(74)
- 资源 (1)
- 收藏
- 关注
原创 linux管理区初始化 一
1、获取物理内存从DTS中获取物理内存arch/arm/boot/dts/vexpress-v2p-ca9.dts: memory@60000000 { device_type = "memory"; reg = <0x60000000 0x40000000>; };根据上面的dts,在start_kernel-->s...
2019-05-04 22:50:44 311
转载 Linux内存管理(4):内存映射机制
https://blog.csdn.net/zhoudaxia/article/details/7909106
2018-08-20 14:42:11 231
转载 Linux内核进程调度schedule深入理解
一.说明本文以linux-2.4.10 为例主要分析Linux 进程调度模块中的schedule 函数及其相关的函数。另外相关的前提知识也会说明。默认系统平台是自己的i386 架构的pc。二.前提知识在进行schedule 分析之前有必要简单说明一下系统启动过程,内存分配使用等。这样才能自然过渡到schedule 模块。首先是Linux各个功能模块之间的依赖关系: ...
2018-08-15 20:49:18 2189
转载 task_struct的定义及注释
struct task_struct {volatile long state; //说明了该进程是否可以执行,还是可中断等信息unsigned long flags; //Flage 是进程号,在调用fork()时给出int sigpending; //进程上是否有待处理的信号mm_segment_t addr_limit; //进程地址空间,区分内核进程与普通进程在内存存放...
2018-08-15 17:20:38 3592 2
原创 kthread_run总结
1、kthread_run是一个宏定义,功能是创建并启动内核线程struct task_struct *ion_comm_kthread;wait_queue_head_t ion_comm_wq;atomic_t ion_comm_event = ATOMIC_INIT(0);atomic_t ion_comm_cache_event = ATOMIC_INIT(0);#...
2018-08-15 14:36:10 13138 1
转载 Android 视频分离和合成(MediaMuxer和MediaExtractor)
原文:https://blog.csdn.net/zhi184816/article/details/52514138#commentsedit另外导入的项目的时候,需要将工程input.mp4导入sd卡中,放在根目录里,由代码可以知道。 理论上来,我们可以利用的视频的分离和合成可以做很多事,比如裁剪视频大小,拼凑视频,对一段视频加入背景等。MediaExtractorMediaExtractor...
2018-07-04 17:16:44 514
转载 C++设计模式-Bridge桥接模式
作用:将抽象部份与它的实现部份分离,使它们都可以独立地变化。将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化。桥接模式号称设计模式中最难理解的模式之一,关键就是这个抽象和实现的分离非常让人奇怪,大部分人刚看到这个定义的时候都会认为实现就是继承自抽象,那怎么可能将他们分离呢。《大话设计模式》中就Bridge模式的解释:手机品牌和软件是两个概念,不同的...
2018-06-18 22:48:45 156
原创 C++装饰模式实例
#ifndef EXCEL_DECORATOR#define EXCEL_DECORATORclass component_abstable{public: virtual void puttable() = 0;};class ConcreteComponent_abstable:public component_abstable{public: virtual vo...
2018-06-17 23:53:44 280
转载 记录生命周期的kref
https://blog.csdn.net/qb_2008/article/details/6840387 kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。 kref的头文件在include/linux/kref.h,实现在...
2018-04-17 11:43:09 176
转载 由Asset中的double free引发的Android系统及APP崩溃问题分析
http://blog.csdn.net/songjinshi/article/details/52816352前言这个问题在来小米之前就遇到并解决过,当时的解决方案与朴老师的初步解决方案一样,本文在之前的初步分析结果之上进一步进行了深入分析,最终得出了当前看起来相对合理并符合原来架构设计的最终方案。 文中引用了朴老师抓的backtrace,同时在进一步分析的过程中朴老师也提出的大量有建设性的问题...
2018-03-08 16:27:09 649
原创 dump 图像方法
if(msgType ==16) { int fd1 = -2; char filepath1[32] = {0}; sprintf(filepath1,"/sdcard/datadump/datadump%d.yuv",i); ALOGE("filepath1 (%s)",filepath1); fd1
2018-01-26 12:26:57 2093
转载 Android系统进程Zygote启动过程的源代码分析
http://blog.csdn.net/luoshengyang/article/details/6768304 在Android系统中,所有的应用程序进程以及系统服务进程SystemServer都是由Zygote进程孕育(fork)出来的,这也许就是为什么要把它称为Zygote(受精卵)的原因吧。由于Zygote进程在Android系统中有着如此重要的地位,本文将详细分
2017-12-30 17:06:47 231
转载 Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
在上一篇文章中,我们分析了Android系统进程间通信机制Binder中的Server在启动过程使用Service Manager的addService接口把自己添加到Service Manager守护过程中接受管理。在这一篇文章中,我们将深入到Binder驱动程序源代码去分析Client是如何通过Service Manager的getService接口中来获得Server远程接口的。Client
2017-12-24 22:08:15 266
转载 Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析
在前面一篇文章浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路中,介绍了在Android系统中Binder进程间通信机制中的Server角色是如何获得Service Manager远程接口的,即defaultServiceManager函数的实现。Server获得了Service Manager远程接口之后,就要
2017-12-24 22:07:25 321
转载 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
在前面一篇文章浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路中,介绍了Service Manager是如何成为Binder机制的守护进程的。既然作为守护进程,Service Manager的职责当然就是为Server和Client服务了。那么,Server和Client如何获得Service Manager接口,进而享受它提供的服务呢?
2017-12-24 22:05:02 278
转载 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
上一篇文章Android进程间通信(IPC)机制Binder简要介绍和学习计划简要介绍了Android系统进程间通信机制Binder的总体架构,它由Client、Server、Service Manager和驱动程序Binder四个组件构成。本文着重介绍组件Service Manager,它是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Ser
2017-12-24 22:02:54 332
转载 Android进程间通信(IPC)机制Binder简要介绍和学习计划
在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者Service是如何通信的呢?这就是本文中要介绍的Binder进程间通信机制了。《Android系统源代码情景分析》一书正在进击的程序员网(http://0xcc0xcd.
2017-12-24 22:01:55 238
原创 camera高温报警
/proc/driver/cl_cam_status 节点值被值1时提示高温cat /proc/driver/thermal/tzbts[mtkts_bts_read] trip_0_temp=95000,trip_1_temp=53000,trip_2_temp=50000,trip_3_temp=48000,trip_4_temp=34000trip_5_temp=
2017-12-21 21:13:57 1916 3
转载 Android 8.0 VTS 测试 FAIL 失败项解决记录
注意:本文基于 Android 8.0 进行分析。1. 前言 这篇文章所记录的是我自己在 Amlogic 平台上碰到的 Android Vendor Test Suite (VTS) 测试问题,所以下文中的各 FAIL 项不一定包含了所有的问题类型。但分析 VTS 问题的思路应该是类似的,希望这篇文章能给各位工程师朋友们带来启发。 这篇文章将不定期更新。2
2017-12-18 22:33:32 2562 1
转载 帮 C/C++ 程序员彻底了解链接器
http://blog.jobbole.com/96225/本文旨在帮助 C/C++ 程序员们了解链接器到底完成了些什么工作。多年来,我给许多同事解释过这一原理,因此我觉得是时候把它写下来了,这样不仅可以供更多人学习,也省去我一遍遍讲解。[2009年3月更新,内容包括:增加了 Windows 系统中链接过程可能遇到的特殊问题,以及对某条定义规则的澄清。]促使我写下这篇文
2017-12-17 00:34:36 845
转载 图文详解YUV420数据格式
http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.htmYUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。
2017-12-10 20:07:09 188
转载 MTK Android Camera 运行流程-app到底层
总体架构CameraService服务的注册client端的应用层到JNI层Camera App---JNIclient到service的连接HAL层驱动层又见用户空间1.总体架构Android Camera 框架从整体上看是一个 client/service 的架构,有两个进程:client 进程,可以看成是 AP 端,主要包括 JAVA 代码与一些
2017-12-08 00:03:33 2012
转载 app:Android Camera2教程之打开相机、开启预览、实现PreviewCallback、拍照
Android API 21新增了Camera2,这与之前的camera架构完全不同,使用起来也比较复杂,但是功能变得很强大。在讲解开启预览之前,首先需要了解camera2的几个比较重要的类:CameraManager: 管理手机上的所有摄像头设备,它的作用主要是获取摄像头列表和打开指定的摄像头CameraDevice: 具体的摄像头设备,它有一系列参数(预览尺寸、拍照尺寸等),可
2017-12-07 23:53:00 1121
转载 Android系统Camera录像过程分析
http://blog.csdn.net/tankai19880619/article/details/16848135分析下系统Camera和MediaRecorder(libstagefright中MPEG4Writer以及CameraSource的关系)。 首先,通过图示、看看Android系统Camera录像时的调用时序:1.录像命令时序2
2017-12-03 23:54:47 1327
原创 自旋锁小结
使用自旋锁四个原则:1、持有自旋锁时要禁止中断 比如持有锁的程序执行到中间时中断发生,中断函数又要获取这个锁,就可能发生死锁。2、自旋锁必须尽可能短的时间持有。其他进程会自旋很久才能获取锁。3、持有自旋锁时不能睡眠4、持有自旋锁时,抢占在相关处理器要禁止。自旋锁函数:void spin_lock(spinlock_t *lock);void spin_l
2017-12-02 23:41:19 325
转载 Android Camera HAL3中预览preview模式下的控制流
http://blog.csdn.net/gzzaigcnforever/article/details/48997463Camera3研读前沿: 当初在研读Camera1.0相关的内容时,主要围绕着CameraClient、CameraHardwareInterface等方面进行工作的开展,无论是数据流还是控制流看起来都很简单、明了,一系列的流程化操作使得整个框
2017-11-21 11:58:33 1016
转载 Android Camera HAL3中拍照Capture模式下多模块间的交互与帧Result与帧数据回调
1. HAL3中Camera2Client下的take picture的入口函数作为标准的capture picture功能的入口,主要完成了以下两件事情:updateProcessorStream(mJpegProcessor, l.mParameters);mCaptureSequencer->startCapture(msgType)对于JpegProcess
2017-11-21 00:06:46 866
转载 Android5.0 Camera HAL3 源代码分析
Android5.0对camera framework层进行了较大的调整,使用了支持HAL3的Camera3Device架构。下面就分析一下这个架构的结构和主要代码逻辑。HAL3的设计思想: 其实HAL的代码复杂但是理清楚他的设计思想后还是比较简单的。Camera应用端与CameraService的交互还是一模一样的,只是以前的CameraClient变成了C
2017-11-21 00:01:22 545
转载 Android源码笔记——Camera系统架构
http://www.cnblogs.com/younghao/p/5337058.htmlCamera的架构与Android系统的整体架构保持一致,如下图所示,本文主要从以下四个方面对其进行说明。Framework:Camera.javaAndroid Runtime:android_hardware_Camera.cppLibrary:Camer
2017-11-20 21:21:46 239
原创 6737 vss 尺寸设置
VideoSnapshotScenario.cppMBOOLVideoSnapshotScenario::setImage(ImageInfo &img)函数JpgType_Main的尺寸通过picHeight 对其: mJpgInfo[JpgType_Main].width = ALIGN_SIZE(picHeight,JPG_IMG_ALI
2017-10-20 15:00:11 213
原创 AF 对焦分析
开启调试开关:adb shell setprop debug.af.enable 1adb shell setprop debug.af_mgr.enable 1adb shell setprop debug.pd.enable 1adb shell setprop debug.af.log.enable 1从目前的log来看,对焦成功时,AE达到stable:31
2017-10-19 17:38:00 1573 1
转载 STL容器 erase的使用陷井
在STL(标准模板库)中经常会碰到要删除容器中部分元素的情况,本人在编程中就经常编写这方面的代码,在编码和测试过程中发现在STL中删除容器有很多陷阱,网上也有不少网友提到如何在STL中安全删除元素这些问题。本文将讨论编程过程中最经常使用的两个序列式容器vector、list中安全删除元素的方法和应该注意的问题, 其它如queue、stack等配接器容器(container
2017-09-21 21:46:10 323
转载 Camera显示之Hal层的适配
一.基本关系1.先来看看KTM hal层大概类图关系:大概类图关系就是这样, 其中和显示相关的类图关系如红线所圈区域。可以猜测到 与显示相关的逻辑处理应该都会在DisplayClient这个类去实现。2.CamDeviceManager和DisplayClient关系的建立:以后app下达有关预览显示相关的东西啊在hal层基本上都是这一条先进行传递命令,
2017-09-21 15:18:42 1046
原创 flashlight 拍照过爆
有时候拍照照片一直过爆,通过分析现象时在低电量时必现过爆,在看代码是低电量时预闪电量降低,导致预亮度低,sensor认为环境亮度低,导致真闪过爆 p->engLevel.torchDuty =2; //af p->engLevel.afDuty = 2; -----------------》电量多时预闪 //pf, mf, normal p->engLevel.
2017-09-05 15:51:04 395
原创 I2C 小结
总线空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 启动信号 在时钟线SCL保持高电平期间,数据线SDA上的电平被拉低(即负跳变),定义为I2C总线总线的启动信号,它标志着一次数据传输的开始。启动信号是一种电平跳变时序信号,而不是
2017-07-05 10:09:54 1847
原创 camera如何dump image buffer大全
[DESCRIPTION] camera如何dump image buffer大全 [SOLUTION] MT6572/MT6589/MT6582/MT6592Select dump buffer portNormal Preview, Video Preview/Record and ZSD Preview (usin
2017-06-23 21:22:31 2541
原创 cameraservice handleEvictionsLocked函数简单分析。
status_t CameraService::handleEvictionsLocked(const String8& cameraId, int clientPid, apiLevel effectiveApiLevel, const sp& remoteCallback, const String8& packageName, /*out*/
2017-05-25 15:27:38 3429
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人