- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 Android Binder通信数据结构介绍
Binder通信进程描述——binder_proc结构体binder_proc用来描述一个正在使用Binder进程间通信机制的进程。当一个进程调用函数open打开/dev/binder设备文件时,Binder驱动程序就会为该进程创建一个binder_proc结构体,并且保存在全局的binder_procs链表中。struct binder_proc { //挂载在全局binder_pr
2013-06-27 19:32:42 4565 2
原创 ServiceManager 进程启动源码分析
Service Manager是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Server远程接口的功能。Service Manager作为本地服务由Init进程启动,在Android Init进程源码分析中详细分析了Init进程是如何启动本地服务的,在Init.rc配置文件中有这么一段配置:service servicemanager
2013-06-26 14:07:27 7406 2
原创 Android 数据Parcel序列化过程源码分析
在Android系统中,所有的服务都必须注册到ServiceManger中,当客户进程需要请求某一服务时,首先从服务管家ServiceManger中查找出该服务,然后通过RPC远程调用的方式使用该服务。服务在注册到ServiceManager时,需要将该服务对象发送到ServiceManager进程。Android是如何将一个binder对象进行序列化呢?本文将对Android的数据序列化进行详细
2013-06-21 19:41:38 11237 1
原创 Android 广播接收器注册与注销源码分析
注册广播接收器Android系统的广播机制是一种消息订阅/发布机制,因此,使用这种消息驱动模型的第一步便是订阅消息;而对Android应用程序来说,订阅消息其实就是注册广播接收器。在Android的广播机制中,ActivityManagerService扮演着广播中心的角色,负责系统中所有广播的注册和发布操作,因此,Android应用程序注册广播接收器的过程就把是广播接收器注册到Activ
2013-06-17 11:24:47 4712 1
原创 Android Binder通信机制
Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,systemVIPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Binde
2013-06-14 19:14:32 3575 3
原创 Android IPC数据在内核空间中的发送过程分析
在上一篇文章Android请求注册服务过程源码分析中从Java层面和C++层面分析了服务请求注册的过程,无论Java还是C++最后都是将需要发送的数据写入的Parcel容器中,然后通过Binder线程持有对象IPCThreadState向Binder驱动发送,本文继续在Android请求注册服务过程源码分析的基础上更深入地介绍服务注册的整个过程。客户进程向ServiceManager进程发送I
2013-06-14 10:02:37 5604 4
原创 Ubuntu Quickbuild 安装配置
服务安装配置: /home/apuser/quickbuild-5.0.7/bin/config.sh启动: /home/apuser/quickbuild-5.0.7/bin/server.sh start编译代理安装登陆到server中,切换到grid页面,右上角有download build agent链接下载编译代理包;解压编译代理包;配置: /home/apuse
2013-06-13 16:01:49 2203
原创 Ubuntu Hudson 安装配置
Ubuntu安装sudo sh -c "echo 'deb http://hudson-ci.org/debian binary/' > /etc/apt/sources.list.d/hudson.list"sudo apt-get updatesudo apt-get install hudson 创建hudson用户并通过 /etc/init.d/hudson启动,hudso
2013-06-13 16:00:35 2491
原创 Ubuntu gerrit 安装配置
创建数据库CREATE USER 'git'@'localhost' IDENTIFIED BY 'git'; CREATE DATABASE reviewdb; ALTER DATABASE reviewdb charset=latin1; GRANT ALL ON reviewdb.* TO 'git'@'localhost'; FLUSH PRIVILEGES;
2013-06-13 15:59:16 2037
原创 Ubuntu Mysql安装配置
安装mysqlsudo apt-get install mysql-server 配置mysqlsudo gedit /etc/mysql/my.cnf启动停止mysqlsudo start mysql sudo stop mysql 登陆mysqlmysql -u root -p 数据库操作 1、show databases; //列出数据库 2、us
2013-06-13 15:58:04 1101
原创 Ubuntu gitweb 安装配置
安装gitweb sudo apt-get install gitweb配置 gitweb1. 把 gitweb 要用的静态文件连接到 DocumentRoot 下:cd /var/www/sudo ln -s /usr/share/gitweb/* .2. 修改配置,将 $projectroot 改为git仓库存储目录sudo vi /etc/gitweb.conf
2013-06-13 15:56:22 3632
原创 Ubuntu Gitosis安装设置
Gitosis 就是一套用来管理 authorized_keys 文件和实现简单连接限制的脚本。用来添加用户和设定权限的并非通过网页程序,而只是管理一个特殊的 Git 仓库。你只需要在这个特殊仓库内做好相应的设定,然后推送到服务器上,Gitosis 就会随之改变运行策略。Git服务器端安装SSH服务端sudo apt-get install openssh-server安装
2013-06-13 15:51:52 1737
原创 Ubuntu 安装git服务器
安装 git服务器sudo apt-get install git-core配置 git服务器1. 创建git服务器管理用户sudo useradd -m gitsudo passwd git2. 创建git仓库存储目录sudo mkdir /home/git/repositories3. 设置git仓库权限sudo chown git:git /home/gi
2013-06-13 15:49:16 1481
原创 git 图文教程
上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。git add files 把当前文件放入暂存区域。git commit 给暂存区域生成快照并提交。git reset -- files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。git checkout -- files 把文件从暂存区域复制到工作目录,用来丢
2013-06-13 15:45:14 1620
原创 Ubuntu 配置Samba 服务器
安装Ubuntu samba服务器sudo apt-get install sambasudo apt-get install smbfs配置samba服务器samba配置文件: /etc/samba/smb.conf可以修改配置文件来设置samba共享和用户#======================= Global Settings ===============
2013-06-13 12:00:08 2069
原创 Android请求注册服务过程源码分析
在ServiceManager 进程启动源码分析中详细介绍了ServiceManager进程是如何启动,如何成为Android系统的服务大管家。客户端在请求服务前,必须将服务注册到ServiceManger中,这样客户端在请求服务的时候,才能够查找到指定的服务。本文开始将以CameraService服务的注册为例来介绍服务注册的整个过程。CameraService服务的注册过程包括五个步骤
2013-06-12 09:16:33 5055 1
原创 Android uevent进程源码分析
在Android Init进程源码分析中讲到init进程会依次执行被加入到待执行队列action_queue中的Action,在init.rc中我们有这么一段配置: 11 on early-init 12 # Set init and its forked children's oom_adj. 13 write /proc/1/oom_adj -16 14 15
2013-06-11 10:42:49 10410 1
原创 Ubuntu 安装VirtualBox
1、终端命令 编辑sources.listsudo gedit /etc/apt/sources.list2、添加 软件源 将下面的地址加入sources.list 的末尾,保存并退出deb http://download.virtualbox.org/virtualbox/debian precise contrib3、终端命令 导入公钥,并更新源wget -q ht
2013-06-08 15:56:39 1486
原创 Android Init进程源码分析
Init 进程源码分析基于Linux内核的android系统,在内核启动完成后将创建一个Init用户进程,实现了内核空间到用户空间的转变。在Android 启动过程介绍一文中介绍了Android系统的各个启动阶段,init进程启动后会读取init.rc配置文件,通过fork系统调用启动init.rc文件中配置的各个Service进程。init进程首先启动启动android的服务大管家S
2013-06-07 14:41:07 16537 12
Android下拉刷新实现一源码
2013-09-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人