自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 QRPROM介绍

QFPROM (Qualcomm Fuse Programmable Read Only Memory)是QFUSE的替代方案,在一个非易失性ROM(non-volatile memory)中存储代表芯片鉴权相关的配置。目前初步了解的情况为,该模块是Secure Boot的一部分,存储的配置为各Image鉴权需要的数字证书及相关属性。QFUSE是Qualcomm FUSE的缩写,FUSE还有一种将

2017-07-20 14:48:37 5492

原创 FFMPEG(二)关键数据结构

总体上,整个播放流程的数据结构由三类组成,分别如下:1)解协议核心的数据结构是AVIOContext、URLProtocol和URLContext。对于每种输入源都会定义一个Context,其中包含这些核心数据结构。URLProtocol定义的是从协议流中获取媒体封装流的操作接口,而URLContext用于记录输入源的url、类型等信息和一个AVIOInterruptCB回调函数。URLC

2017-07-14 16:08:20 434

原创 FFMPEG(一)使用初探

本系列文章的重要参考来源是雷神的博客。使用FFMPEG的主要流程如下图所示:如果说,在Windows平台上开发相关的程序,可以使用另一个开源库SDL,该开源库在Android中的路径为prebuilts/misc/windows/sdl2/,使用SDL的基本流程如下:上图中SDL_Surface就是使用SDL的时候弹出的那个窗口。在SDL1.x版本中,只可以创建一个SD

2017-07-14 11:24:38 376

原创 IC提供商列表

产品级IC深圳市云通微科技有限公司 https://detail.1688.com/offer/547735068184.html?spm=a261b.2187593.1998088710.219.ILywoy深圳云通微科技有限公司是一家专业设计电子消费类产品,从事音箱IC研发、设计及销售为一体的IC生产厂家。公司拥有一批具有电子行业经验丰富的专业设计优秀团队,能给客户提供专业的产品设

2017-07-13 17:41:54 601

原创 KODI概览

源码根目录下文件夹如下:addons:附加元件。比如说XBMC的皮肤文件,屏幕保护文件,可视化效果文件等等。docs:文档。language:语言文件。project:项目工程文件。xbmc:源代码lib:调用的各个库。比如说libavcodec。/xbmc是代码的核心目录,其中“core”文件夹中存放核心的类“addon”文件夹中存放和addon相关的类

2017-07-13 17:19:52 1055

原创 关于地址映射

在PC上,对于ISA和PCI而言,总线即为物理地址,但并非每个平台都是如此。由于有时候接口总线是通过桥接电路被连接,桥接电路会将IO地址映射为不同的物理地址。MMC数据传输过程中对于不连续的物理空间使用scatterlist来启用DMA操作MMC作为块设备,它的存储空间,最小单位由struct bio_vec 描述,它代表一段物理地址范围。一次块设备传输请求,会涉及到很多个这样的不

2017-07-11 16:58:00 671

原创 SMMU概述

SMMU本质上就是一个MMU设备,它的内存转换逻辑与CPU的MMU采用相同的逻辑,都允许将物理上非连续的页虚拟为连续的内存页。SMMU和IOMMU可以交替使用。关键术语-Context Bank 定义转换上下文的寄存器集,系统中的每个Context Bank都有相同的寄存器集。 PS:这里要记录的有哪些信息?-Stream ID SMMU的输入源,用于唯一标记当前转换流

2017-07-11 15:45:12 15384

转载 JAR、WAR、EAR的使用和区别

最近接触这几个词较多,停下来总结总结它们的区别和联系,更好的深刻理解               Jar、war、EAR、在文件结构上,三者并没有什么不同,它们都采用zip或jar档案文件压缩格式。但是它们的使用目的有所区别:  Jar文件(扩展名为. Jar,Java Application Archive)包含Java类的普通库、资源(resources)、辅助

2017-07-09 22:49:40 311

原创 常用的开源库

JSON解析1)gson2)jackson3)Fastjson4)LoganSquare数据库操作1)ActiveAndroid2)ormlite3)greenDAO4)Realm网络通信1)android-async-http2)OkHttp3)Volley4)Retrofit图片缓存和显示1)BitmapFun2)Picass

2017-07-09 22:48:19 319

原创 用Jenkins搭建持续集成编译环境

Jenkins是一个web应用程序,为了让团队中其他人能够访问到Jenkins,首先要将它部署到web服务器中,通常情况下都选择Apache Tomcat。Jenkins下载完成后会得到jenkins.war文件,将这个文件复制到Tomcat的webapps目录下面,重启Tomcat,在浏览器中访问地址http://localhost:8080/jenkins/即可打开Jenkins首页。

2017-07-09 22:38:16 1883

原创 SEAndroid实现机理

SEAndroid是Google在Android 4.4上正式推出的一套以SELinux为基础于核心的系统安全机制。而SELinux则是由美国NSA(国安局)和一些公司(RedHat、Tresys)设计的一个针对Linux的安全加强系统。NSA最初设计的安全模型叫FLASK,全称为Flux Advanced Security Kernel(由Uta大学和美国国防部开发,后来由NSA将其开源),

2017-07-04 15:36:03 302

原创 Android selinux配置和用法

SELINUX相关的代码目录:1)kernel/msm-3.18/security/selinux/2)external/selinux/3)用BOARD_SEPOLICY_DIRS添加的各te文件和安全配置文件,主要包括device//sepolicy//和system/sepolicy/,以及其他功能模块添加的配置文件。Android中对SELINUX来说,有两个类型,一种

2017-07-04 11:23:02 3940

转载 Android recovery支持adb shell

最近开发过程注意到recovery不支持adb shell,为了便于调试方便,决定增加此功能。 刚开始我们采用的是user版本系统,进入recovery后,输入adb shell命令,提示“error: no devices/emulators found”,我们先确认recovery.img是否包含有adb,看out\debug\target\product\xxx\recove

2017-07-03 17:33:16 1233 2

转载 linux内核 DebugFS

一、简介DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据。类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来。通常情况下,最常用的内核调试手段是printk。我们在调试时可能需要修改某些内核变量,这种情况下printk就无能为力,而如果为了修

2017-07-03 17:31:55 247

转载 Android 7.0 init.rc的一点改变

在Android 7之前的版本中,系统Native服务,不管它们的可执行文件位于系统什么位置都定义在根分区的init.*.rc文件中。这造成init*.rc文件臃肿庞大,给维护带来了一些不便,而且其中定义的一些服务的二进制文件根本不存在。但在android 7.0中,对该机制做了一些改变 。单一的init*.rc,被拆分,服务根据其二进制文件的位置(/system,/vendor,

2017-07-03 17:29:31 836

原创 GPIO配置和管理

BootLoader阶段BootLoader阶段可以调用gpio_tlmm_config()函数完成GPIO_CFGn寄存器的配置,举例如下:#define TLMM_VOL_UP_BTN_GPIO    85  gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0,GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABL

2017-07-03 17:10:08 2001 1

原创 配置Modem的命令radiooptions

手机运行中,上层通过Ril.java的接口封装,借助RILD建立与Modem的通信,Ril.java也称为RILJ。Modem和RILD之间通信的信息分两种:unsolicited和solicited(solicited是征求的意思),前者是由modem主动上报的,诸如时区更新、通话状态、网络状态等消息,后者是RILJ端发请求并需要modem反馈的信息。 另外,Android系统还提供了一个命

2017-07-03 15:43:55 670

原创 常用系统配置和资源管理

1、rc文件android通用的rc文件目录:\system\core\rootdir\init.rcqcom平台共用的rc文件目录:device\qcom\common\rootdir\etcqcom特定型号处理器的rc文件目录:比如device\qcom\msm8909

2017-07-03 15:00:16 264

原创 Linux系统和计算机系统常用缩写

以字母排序GIC:Generic Interrupt Controller

2017-07-03 14:44:57 226

原创 常用的调试手段

Linux内核1)将init进程的详细log输出到dmesg文件中方法:修改/system/core/rootdir/init.rc,把loglevel从3改为7

2017-07-03 14:40:33 755

原创 常用的Android平台编译变量

BOOTLOADER_PLATFORM: BootLoader代码中平台的选择KERNEL_DEFCONFIG:确认内核defconfig使用的文件TARGET_BOARD_PLATFORM:目标平台PlatformTARGET_BUILD_VARIANT:目标编译tags

2017-07-03 14:37:38 366

原创 常用命令

adb shell dumpsys activity topadb shell setprop sys.verity 1adb disable-verityadb rebootadb shell setprop persist.sys.usb.config mtp,serial,diag,adb增加三条命令将触摸音等静音。adb shell sett

2017-07-03 10:37:07 502

原创 内存泄漏检测和静态代码分析等工具简单列举

内存泄漏检测函数库LeakCanaryJava代码规范检查工具CheckStyleJava静态代码分析工具FindBugsjava静态代码分析工具PMDAndroid代码优化工具LintAndroid UI自动化测试工具:Monkey、MonkeyRunner、UIAutomator、Robotium、Espresso、Appium参考《Android高级进阶》顾浩鑫著

2017-07-01 11:42:30 1055

原创 Android Crash日志收集

这里主要针对手机发货后,到达用户手上之后,如何搜集故障现场信息。其实开发APP时,已经有一些第三方的Crash SDK可以选择,比如腾讯的Bugly、百度的MTJ、友盟SDK等。这里主要是介绍如何实现这个功能的内部原理。要实现一个Crash SDK包括三个方面:Crash捕获、Crash堆栈信息的获取、Crash日志的上报。Java层Crash捕获机制1)基本原理Android应用

2017-07-01 11:36:12 661

原创 ANR产生的原因

只有当应用程序的UI线程响应超时时才会引起ANR,超时产生原因一般有两种:--当前的事件没有机会得到处理,例如UI线程正在响应另一个事件,当前事件由于某种原因被阻塞了。--当前的事件正在处理,但是由于耗时太长没能及时完成。根据ANR产生的原因不同,超时时间也不尽相同,从本质上讲,产生ANR的原因有三种,大致可以对应到Android中的四大组件中的三个:--KeyDispatchTi

2017-07-01 10:59:59 1188

原创 触摸事件的传递过程

这里主要介绍Activity、View、ViewGroup三者的触摸事件传递机制,一次完整的事件传递主要包括三个阶段,分别是事件的分发、拦截和消费。触摸事件对应的是MotionEvent类,事件的类型主要有三种:ACTION_DOWN、ACTION_MOVE、ACTION_UP。分发:事件的分发对应着dispatchTouchEvent方法,在这个方法中,根据当前视图的具体实现逻辑,来决定是直

2017-07-01 10:23:27 318

转载 android 集成第三方静态库的编译方法

原文链接:http://blog.csdn.net/lizhiguo0532/article/details/7219349      最近为Java层将一个静态库通过jni层封装成了一个动态库工他们调用,遇到了一些编译上的疑惑,所以索性将其彻底搞清楚算了,免得以后误事。             下面的图片列出了所有相关文件,可以看到引用静态库的文件是com_xxx.cpp

2017-06-30 17:53:51 543

原创 内存划分概述

1)SBL阶段AMSS/boot_images/build/ms/8953.target.builds定义很多内存地址,比如SCL_SBL1_IMAGE_BASE等AMSS/boot_images/build/ms/build_8937.sh用$TOOLS_SCONS_ROOT/build/build.sh -f target.scons --tcfgf=8953.target.b

2017-06-30 16:37:01 593

原创 连接CMW 500综测仪VoLTE时的设置

70287    1---》065955    1---》065957    1---》171597    011----》1000067257    1--->0,VoipSessionTimerEnabled 8 Uint8如果在连接综测仪时,选择MBN配置,总是重启后就恢复缺省,这个需要设置NV71546=0、NV71548=0并选择MBN配置后重启手机才

2017-06-30 16:36:22 3544 1

原创 bootrom的类型

bootrom有三种类型:ROM_RESIDENT、UMCOMPRESS和COMPRESS。第一种是一直运行在rom中的映象,只把data段拷贝到ram里面;第二种是非压缩方式的映象,data段和text段都要拷贝到ram里面,并在ram里面运行;第三种是压缩方式的映象,生成的时候编译器会把除掉romInit.s和bootInit.c之外的目标文件压缩并“汇编”成一个bootrom.Z.s,最后和

2017-06-30 16:33:23 3653

原创 LK的大体过程

LK过程中的程序控制和关键过程spmi_init从XBL已经在指定位置存放好的值初始化SPMItarget_sdc_init初始化SD卡的控制器partition_read_table读取磁盘的分区表,包括MBR或GPT,填充到全局变量partition_entries中target_crypto_init_params处理签名内核VERIFIED_BOOT宏非零的情况下,会通

2017-06-30 16:32:39 682

转载 Linux Support for ARM LPAE 分析

介绍         早期的ARM系统仅需要MB级别的RAM,但是,随着设备的升级,现在更多复杂的智能手机设备 需要 百M甚至GB级别的RAM,而32bit的物理地址空间就显得捉襟见肘了。更让人紧张的是,这些地址空间不仅仅是RAM占用了,还有 外设、FLASH存储器以及系统ROM也占用了部分地址空间。         新兴起的 移动虚拟化 需要更多是RAM,当然在 Guest

2017-06-30 14:12:49 384

转载 内核签名机制

Signed kernel module supportFrom Gentoo WikiJump to: navigation, searchSince Linux kernel version 3.7 onwards, support has been added for signed kernel modules. When enabled, the linux ker

2017-06-30 14:10:43 618

原创 高通常用缩写

APPS PBL: Application Processor Primary Boot LoaderSBL: Secondary Boot LoaderRPM: Resource Power Manager是高通MSM平台另外加的一块芯片,虽然与AP芯片打包在一起,但其是一个独立的ARM Core。之所以加这个东西,就是要控制整个电源相关的shared resources,比如ldo,c

2017-06-29 17:47:40 7362

转载 高通平台BootLoader的流程

原文链接:http://www.codingblog.cn/blog/44451.html注:很多内容和MTK  LK阶段相同,可以借鉴学习。aboot.c内容差异很大。本文以C6的bootlader代码为例, 一 kmain1crt0.S2kmain二 bootstrap21 arch

2017-06-29 16:59:48 5501 1

转载 Android编译系统详解

Android编译系统详解1http://www.cnblogs.com/mr-raptor/archive/2012/06/07/2540359.htmlandroid编译系统详解2http://www.cnblogs.com/mr-raptor/archive/2012/06/08/2541571.htmlAndroid编译系统详解3http://www.cnblogs.c

2017-06-28 16:53:31 148

转载 ARMlinux kernel 启动之start_kernel (二)

了解完kernel启动以前的汇编之后我们来看看正式的c语言启动代码,也就是我们的start_kernel函数了。start_kernel相当大,里面每一个调用到的函数都足够我们伤脑筋了,我这里只是浅尝辄止的描述一下函数的功能,从而对kernel启动的过程有一个比较直观的了解。很多函数真正理解需要对linux相关体系有很深的了解,暂时没有时间深入,留待以后了。       说实话启动的代码看

2017-06-28 16:47:43 198

转载 ARM linux kernel启动流程 head.S(一)

1. kernel运行的史前时期和内存布局在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行。该kernel的执行起点是stext函数,定义于arch/arm/kernel/head.S。在分析

2017-06-28 16:45:00 394

转载 Android系统启动流程 -- bootloader、linux kernel、android

转载:http://blog.csdn.NET/arnoldlu/article/details/8264721目录:       第一部分:Bootloader启动一、Bootloader的定义和种类二、Arm特定平台的Bootloader三、U-boot启动流程分析        第二部分:Linux启动一、zImage是怎样炼成的?二、Linux的c启动阶

2017-06-28 16:41:00 752

原创 计算机编程经典资源

Linux源码LXR 源自“the linux Cross Referencer”,中间的“X”形象地代表了“Cross”。与 Source Navigator 类似,它也是分析阅读源代码的好工具。不同的是,它将源代码借助浏览器展示出来,文件间的跳转过程成了我熟悉的点击超链接动作。http://lxr.linux.no/   LXR安装过程简介linux手册http

2017-06-28 16:38:59 835

空空如也

空空如也

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

TA关注的人

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