自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (4)
  • 收藏
  • 关注

转载 UML类图几种关系的总结

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)         1. 泛化(Generalization)        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特

2017-02-03 15:48:20 731

原创 proc机制demo

在proc下可以创建节点,driver可以echo或cat设备节点里的数据,和某些Module交互。下面是实现的一个proc demo,代码如下:// BT debug Begin#include #include #include //#ifdef CONFIG_MP_BCM_BT_REG_ON#define MAX_PROC_SIZE 20sta

2016-08-15 20:33:00 970

原创 module_param的介绍

一般用户态传递参数是通过main函数,第一个参数表示args个数,即argc,第二个参数表示具体的参数。在kernel态,无法通过这样的方式传递参数,一般使用module_param的方式,步骤如下:1.使用module_param指定模块的参数2.加载driver时给模块传递参数source code如下:#include #include #incl

2016-08-15 20:31:48 16269

原创 关于kernel log level的基础知识

kernel中用printk来打印debug信息,关于printk有一个level的定义。3.10.40\include\linux\kern_levels.h#define KERN_EMERG KERN_SOH "0" /* system is unusable */#define KERN_ALERT KERN_SOH "1" /* action must b

2016-08-15 20:30:44 24261 1

原创 AudioFlinger学习笔记1

1  AudioFlinger启动流程在init.rc中会定义mediaserver进程:service media /system/bin/mediaserver class main user media group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm iop

2016-08-13 16:15:11 4689

原创 HelloWorld Driver

尝试编写一个简单的driver,作为学习kernel的敲门砖。source code(hello_world.c):#include #include #include #include #include #include static int word_count_init(void){ printk(KERN_ALERT "word_count_init_

2016-08-12 18:04:11 505

转载 Linux程序存储结构与进程结构 堆和栈的区别

摘要:本文主要讲述了Linux系统中,程序存储结构(代码区、数据段和BBS区)与进程的基本结构(代码区、数据段、BBS区、堆和栈),以及堆和栈的区别.Linux程序存储结构与进程结构1.Linux程序存储结构    在Linux系统下,程序是一个普通的可执行文件,图1是一个Linux下ELF格式可执行文件的基本情况. 图1 ELF格式可执行文件的基本

2016-07-09 15:00:25 1441

原创 JACK编译器配置

Android M开始,google默认使用JACK编译器,对于JACK编译器的编译流程下面这篇文章写的很详细:http://taobaofed.org/blog/2016/05/05/new-compiler-for-android/这里主要谈一下JACK编译器的配置。1 JACK编译器三种模式JACK编译器有三种模式:LOCAL_JACK_ENABLED:=$(DE

2016-07-06 20:36:41 12654 2

原创 [android6.0]添加System Jar记录

昨天模拟客户一个问题,尝试在系统jar中依赖静态jar,然后被apk去call系统jar,是否会出现启动apk,系统jar再次做dex2oat行文。如下是我做系统jar的步骤:1 新建java工程A,写一个简单的java工具类,这个java工程作为系统jar可以被apk直接去call2 新建java工程B,写一个简单的java工具类,这个Java工程java code会expo

2016-06-30 11:53:56 5290

原创 查看tcp/udp端口占用命令

在CTS测试中有一项是测试端口被占用,可以通过如下cmd查看端口占用情况:root@muskmelon:/ # busybox netstat -atnpActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address           Foreign Address    

2016-04-25 14:28:14 9540 1

原创 SELinux配置property

property是android常用的一个TOOL(可以理解为TOOL),使用起来非常方便,不管是Java层还是c++层,都可以使用property。1.非SEAndroid property限定android 5.X之前,例如kikat4.4 :system\core\init\property_service.c  property_perms[] = { { "

2016-03-23 21:23:40 7743

原创 SELinux app权限配置

SELinux(或SEAndroid)将app划分为主要三种类型(根据user不同,也有其他的domain类型):1)untrusted_app  第三方app,没有android平台签名,没有system权限2)platform_app    有android平台签名,没有system权限3)system_app      有android平台签名和system权限从上面划分,权

2016-03-23 17:49:33 24552 2

原创 android pm命令实现

android终端提供了一些cmd,开发人员可以通过这些cmd获取信息和执行任务。比较常用的有am,pm,input等,今天讲讲pm命令是如何实现的。pm经常用的是安装apk以及查询系统安装的apk有哪些,确定apk是否有安装成功,比如:pm install  /mnt/usb/sda1/xxx.apk   ->android 5.0之后必须要写绝对路径,否则会提示url无效p

2016-03-19 12:00:43 7910

原创 android 5.1 非STR待机流程

android在长按Power键(手机或pad)或按下电源键(电视)会进入待机状态,下面分析一下非STR待机流程。待机分STR和非STR待机。STR待机是为了实现快速开关机,提高开机速度。android自身支持STR,OEM可以根据自身需要进行深度定制。STR待机时,PM芯片仍然供电,其他断电,当STR开机时,从PM芯片唤醒,回复到STR待机前状态,从而提高开机速度。非STR待机即正常

2016-03-16 17:25:41 5368

原创 android 6.0 SystemUI源码分析(6)-StorageNotification介绍

StorageNotification继承于SystemUI,主要处理Storage事件,比如Storage插拔等。在StorageNotfication的start函数,会去注册StorageEventListener。 @Override public void start() { mNotificationManager = mContext.getSyste

2016-03-13 12:17:04 5832 2

原创 android 6.0 SystemUI源码分析(5)-PowerUI介绍

PowerUI在SystemUI里的实现比较简单,PowerUI主要处理和Power相关的事件,比如省电模式切换,电池电量变化和开关屏事件等。PowerUI的启动流程与SystemBars,Recents一样,因为他们都是SystemUI的子类,具体可以看前面的介绍。 public void start() { mPowerManager = (PowerManage

2016-03-12 19:38:11 3547 1

原创 android TIF HAL层代码分析

上一篇文章有分析TIF事件传递流程,TvIputHal会call到JNI,JNI将event给到Java层,但是JNI层又是怎么拿到event事件的呢?分析TIF HAL层,需要掌握:1.HAL层主要结构体的含义2.HAL层主要代码实现3.Native层或JNI层load hal模块的流程4.hal,native和jni调用关系1.HAL层主要结构体的含义TIF HAL

2016-03-12 16:04:04 4359

原创 android TIF启动流程

TIF是Tv Input Framework的简称,是Android在5.0后加入的tv框架,为了支持android tv功能。1 TvInputManagerService启动流程TvInputManagerService在TIF框架结构中扮演Java service层的角色,向java api提供接口实现。在SystemServer的Main  Thre

2016-03-11 12:50:53 7203

原创 android 6.0 SystemUI源码分析(4)-StatusBar显示流程

1.StatusBar启动StatusBar继承于SystemUI,在SystemUIApplication会启动SysteBar.mServices[i].start();SystemBar.java @Override public void start() { if (DEBUG) Log.d(TAG, "start"); mServi

2016-03-08 20:39:59 9005 1

原创 android 6.0 SystemUI源码分析(3)-Recent Panel加载显示流程

1.Recent Panel按键处理流程SystemUI有一个很重要的功能就是显示近期使用的app,方便用户点击使用。手机长按HOME键或者点击Navigation Bar的近期任务栏虚拟键可以显示Recent Panel。我这里手头上只有Android TV平台,并且也便于debug,所以讲讲收到Switch按键后,Recent Panel的显示流程。Ke

2016-03-07 17:09:31 10792 10

原创 android 6.0 SystemUI源码分析(2)-SystemUI启动流程

1.SystemUI启动SystemUI是核心系统应用,需要开机启动,启动SystemUI进程,是通过启动SystemUIService来实现的。frameworks\base\services\java\com\android\server\SystemServer.javaSystemServer启动后,会在SystemServer Main Threa

2016-03-07 10:38:33 8346 1

原创 android 6.0 SystemUI源码分析(1)-SystemUI介绍

1. SystemUI介绍SystemUI是一个系统应用,主要功能有:1)状态栏信息显示,比如电池,wifi信号,3G/4G等icon显示2)通知面板,比如系统消息,第三方应用消息,都是在通知面板显示。3)近期任务栏显示面板。比如长按主页或近期任务快捷键,可以显示近期使用的应用。4)提供截图服务。比如电源+音量加可以截图。5)提供壁纸服务。比如壁纸的显示。6)提供屏保服

2016-03-06 23:48:33 19974 3

原创 android系统升级提示框

当系统apk更新时,开机会有一个提示框,提示apk正在升级。具体代码如下:  public void performBootDexOpt() {....   if (!isFirstBoot()) {                        try {                            ActivityManagerNative.get

2015-11-04 10:50:30 3855 1

原创 Selinux在Enforcing mode切到root

Selinux在Enforcing mode时,在终端输入su,可以从shell用户切到root用户。那么在哪里去控制的呢?external\sepolicy\su.te # su is also permissive to permit setenforce.  permissive su;就是这句permissive su,才可以让shell通过su切到root。

2015-11-03 21:16:17 2630

原创 android近期任务栏图片生成过程

我们在android手机长按HOME键,会弹出一个近期任务栏。近期任务栏会显示你访问过的app的截图。实现过程分为如下几步:Activiyty开始pause时截图 final boolean startPausingLocked(boolean userLeaving, boolean uiSleeping, boolean resuming, boole

2015-11-03 21:01:05 5376 3

原创 android笔记整理

android笔记整理------强制设置横屏PackageParser.java private Activity parseActivity(Package owner, Resources res,            XmlPullParser parser, AttributeSet attrs, int flags, String[] outError,

2015-04-15 15:01:22 950

原创 window和PhoneWindow相关笔记整理

整理记录阅读code以及修复BUG---------在Activity的onCreate进行setContentView之前,可以设置窗口的Feature,比如noTitle,全屏等。调用方法:getWindow().requestFeature(Window.FEATURE_NO_TITLE);getWindow即返回的是Window,在Window.java中对requestF

2015-04-15 14:50:38 1259

原创 Camera HAL层代码分析2

camera open之后,可以调用startPreview函数进行preview,今天主要讲解Camera HAL层startPreview的fo

2014-11-21 11:38:41 1713

转载 Android 编程下的 TraceView 简介及其案例实战

http://www.cnblogs.com/sunzn/p/3192231.html

2014-11-17 21:13:49 988

转载 V4L2驱动程序架构

1 V4L2简介video4linux2(V4L2)是Linux内核中关于视频设备的内核驱动,它为Linux中视频设备访问提供了通用接口,在Linux系统中,V4L2驱动的Video设备节点路径通常/dev/video/中的videoXV4L2驱动对用户空间提供字符设备,主设备号为81,对于视频设备,其次设备号为0-63。除此之外,次设备号为64-127的Radio设备,次设备

2014-11-14 10:46:04 868

转载 一篇不错的v4l2入门文档

原帖地址: http://www.isongzi.com/2009/02/23/v4l2/ 前言:目前正在忙于ARM平台的Linux应用程序的开发(其实是刚刚起步学习啦)。底层的东西不用考虑了,开发板子提供了NAND Bootloader,和Linux 2.6的源码,而且都编译好了。自己编译的bootloader可以用,但是Linux编译后,文件很大,暂且就用人家编译的系统,先专心

2014-11-14 10:28:11 3217

原创 Camera HAL层代码分析1

Camera HAL层的基类是CameraHardwareInterface,主要定义在CameraHardwareInterface.h

2014-11-13 21:12:14 5834

原创 android settings源代码分析(3)

本章主要分析google settings里面存储模块的代码。

2014-10-30 16:31:30 7717 1

原创 android settings源代码分析(2)

android settings源代码分析(1)通过前一篇文章

2014-10-30 15:10:46 7855

原创 android settings源代码分析(1)

1.android settings源码的source code路径为:

2014-10-30 14:07:17 17025

原创 Supporting Different Screens

Android categorizes device screens using two general properties: size and density. You should expect that your app will be installed on devices with screens that range in both size and density. As suc

2014-01-17 21:55:00 710

原创 Camera HAL overview

Copy From :http://source.android.com/devices/camera/camera.htmlAndroid's camera HAL connects the higher level camera framework APIs in android.hardware to your underlying camera driver and

2014-01-01 19:18:36 1512

转载 Android 的 init.rc 文件简介

init.rc由许多的Action和Service组成。每一个语句占据一行,并且各个关键字被空格分开.由 # (前面允许有空格)开始的行都是注释行(comment)一个actions 或 services 的开始隐含声明了一个新的段,所有commands 或 options 属于最近的声明。在第一个段之前的 commands 或 options 都会被忽略每一个action

2013-11-28 20:56:09 758

转载 Android SystemProperties系统属性分析

Android 的系统属性包括两部分:文件保存的持久属性和每次开机导入的cache属性。前者主要保存在下面几个文件中:bionic/libc/include/sys/_system_properties.h1     #define PROP_SERVICE_NAME "property_service"2     #define PROP_PATH_RAMDISK_DEFAULT 

2013-11-27 10:57:10 920

转载 Android Wi-Fi Display(Miracast)介绍

[+]Android Wi-Fi DisplayMiracast介绍一背景知识介绍二 Android 42 Miracast功能实现介绍SurfaceFlinger对Miracast的支持Framework对Miracast的支持Android中Miracast动态工作流程介绍三总结Android Wi-Fi Display(Miracast)介绍2

2013-11-21 22:39:54 3106

Hello proc

kernel proc机制demo

2016-08-16

hello driver

hello world driver

2016-08-15

SAX方式解析xml

SAX解析xml,是一种比较高效的方式。相比于其他的解析方式,占用内存比较低。

2012-04-14

Strut2入门v3.0

这本书对于初学Struts2这个框架的学员来说很实用,理论和上机操作都很详细,值得一看!

2011-04-06

空空如也

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

TA关注的人

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