- 博客(70)
- 资源 (4)
- 收藏
- 关注
转载 UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特
2017-02-03 15:48:20
780
原创 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
1012
原创 module_param的介绍
一般用户态传递参数是通过main函数,第一个参数表示args个数,即argc,第二个参数表示具体的参数。在kernel态,无法通过这样的方式传递参数,一般使用module_param的方式,步骤如下:1.使用module_param指定模块的参数2.加载driver时给模块传递参数source code如下:#include #include #incl
2016-08-15 20:31:48
16388
原创 关于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
25255
原创 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
4767
原创 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
535
转载 Linux程序存储结构与进程结构 堆和栈的区别
摘要:本文主要讲述了Linux系统中,程序存储结构(代码区、数据段和BBS区)与进程的基本结构(代码区、数据段、BBS区、堆和栈),以及堆和栈的区别.Linux程序存储结构与进程结构1.Linux程序存储结构 在Linux系统下,程序是一个普通的可执行文件,图1是一个Linux下ELF格式可执行文件的基本情况. 图1 ELF格式可执行文件的基本
2016-07-09 15:00:25
1482
原创 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
12725
原创 [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
5359
原创 查看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
9603
原创 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
7865
原创 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
24897
原创 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
8058
原创 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
5458
原创 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
5923
原创 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
3626
原创 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
4457
原创 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
7330
原创 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
9061
原创 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
10857
1
原创 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
8438
原创 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
20071
1
原创 android系统升级提示框
当系统apk更新时,开机会有一个提示框,提示apk正在升级。具体代码如下: public void performBootDexOpt() {.... if (!isFirstBoot()) { try { ActivityManagerNative.get
2015-11-04 10:50:30
3905
原创 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
2698
原创 android近期任务栏图片生成过程
我们在android手机长按HOME键,会弹出一个近期任务栏。近期任务栏会显示你访问过的app的截图。实现过程分为如下几步:Activiyty开始pause时截图 final boolean startPausingLocked(boolean userLeaving, boolean uiSleeping, boolean resuming, boole
2015-11-03 21:01:05
5457
原创 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
975
原创 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
1284
原创 Camera HAL层代码分析2
camera open之后,可以调用startPreview函数进行preview,今天主要讲解Camera HAL层startPreview的fo
2014-11-21 11:38:41
1753
转载 Android 编程下的 TraceView 简介及其案例实战
http://www.cnblogs.com/sunzn/p/3192231.html
2014-11-17 21:13:49
1011
转载 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
889
转载 一篇不错的v4l2入门文档
原帖地址: http://www.isongzi.com/2009/02/23/v4l2/ 前言:目前正在忙于ARM平台的Linux应用程序的开发(其实是刚刚起步学习啦)。底层的东西不用考虑了,开发板子提供了NAND Bootloader,和Linux 2.6的源码,而且都编译好了。自己编译的bootloader可以用,但是Linux编译后,文件很大,暂且就用人家编译的系统,先专心
2014-11-14 10:28:11
3248
原创 Camera HAL层代码分析1
Camera HAL层的基类是CameraHardwareInterface,主要定义在CameraHardwareInterface.h
2014-11-13 21:12:14
5916
原创 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
738
原创 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
1547
转载 Android 的 init.rc 文件简介
init.rc由许多的Action和Service组成。每一个语句占据一行,并且各个关键字被空格分开.由 # (前面允许有空格)开始的行都是注释行(comment)一个actions 或 services 的开始隐含声明了一个新的段,所有commands 或 options 属于最近的声明。在第一个段之前的 commands 或 options 都会被忽略每一个action
2013-11-28 20:56:09
783
转载 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
943
转载 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
3158
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人