- 浏览: 46712 次
- 性别:
- 来自: 北京
最新评论
文章列表
AIDL 进程间通信
- 博客分类:
- android
AIDL
AIDL是一种接口语言。目的是为了进程间通信。server端和client端都需要统一的接口,client端才能通过这些接口访问server端,已达到进程间通信的目的。
实现主要步骤为:
1 在server端编写.aidl文件。aidl文件中定义一个接口,和接口下要实现的方法。
方法的参数和返回值可以是任意类型。只要这些类型要实现Parcelable。
2 在eclipse中保存后会自动生成同名的java接口。此java类下面有个静态内部类Stub。
抽象类Stub继承了BInder,且要实现aidl定义的接口。
3 在server端编写一个Service。这个是s ...
Handler线程间通信
- 博客分类:
- android
Handler
1 handler主要处理两种对象。
一是Message对象,一是Runable对象。
实际上Runable对象也会获得一个Message对象。
2 每个handler对象同当前所在的线程和消息队列绑定。
handler对象从消息队列中获得Message,后者向消息队列中发送Message。
3 handler主要有两类方法。
一类是post开头的,主要向消息队列中传递Runable对象。
一类是sendMessage,主要向消息队列传递Message对象。
4 handler线程间通信。
主线程创建一个handler对象。那么主线程的消 ...
BBB板子自带一个linux系统,Angstrom,桌面环境是gnome。以下的设置都是在此基础上进行的。
BBB除了板子,只有一个usb线。通过这根usb线,PC可以远程登录到板子上。
下面是两种方式ssh和vnc。
准备工作
1 将micro usb端口插入到BBB板子中,另一端连接PC。
2 下载linux驱动。http://beagleboard.org/static/Drivers/Linux/FTDI/mkudevrule.sh。在PC上执行。
3 通过chrome或firefox测试下网络是否联通http://192.168.7.2。
ssh远程登录 ...
Google
Android Open Source Project
Android平台开发主页。
包括下载并设置开发AOSP。
Google
Android Developer
Android程序开发主页。
Google
Android Tools Project Site
此网页包括各种开发工具。
包括SDK,NDK等。
SoC Vendors
TI Andr ...
Linux的核心编译,kernel
- 博客分类:
- Linux
Linux的核心(kernel)
1 Linux就是指kernel
2 kernel负责整个硬件的驱动,和提供各种核心功能
3 kernel是一个文件,一般放置在/boot/vmlinuz-$(uname -r)
此文件包含各项硬件侦测程序和驱动模块
4 核心模块(kernel module),有些功能没有集成在核心中,编译成模块以便核心随时加载
放置路径/lib/modules/$(uname -r)/kernel/
5 核心的版本,主版本.次版本.发布版本-修改版本
6 最新稳定版核心源代码下载地址,http://www.kernel.org/
7 建议将核 ...
Linux的软件源代码包编译安装,make
- 博客分类:
- Linux
源代码包编译安装步骤
1 下载软件源代码包,解压并移动到/usr/local/src/路径下
2 进入源代码路径,查阅INSTALL或README文件
3 根据INSTALL或README的内容查看并安装好一些相依性软件
4 configure/config文件,执行侦测系统环境,并自动生成Makefile文件
5 Makefile/makefile文件,记录了源代码如何编译的详细信息
6 gcc编译器,编译环境
7 make命令,依据Makefile文件的定义进行编译或安装
Makefile基本语法
1 target与目标文件之间需要":"分隔, ...
Linux的模块管理,modules
- 博客分类:
- Linux
模块
一个模块提供一个功能。
核心(kernel) 具有模块化的功能。
模块是可以随时加载和移除的。
模块相关命令
depmod
生成modules.dep文件,解决模块间相依性
lsmod
显示核心包含的模块
modinfo
显示指定核心模块具体信息
insmod
加载模块到核心中
rmmod
从核心中移除模块
modprobe
加载或移除核心模块,解决模块间相依性
相关文件
/lib/modules/$(uname -r)/kernel/*
核心模块
/usr/src/linux
核心源代码
...
系统启动流程
以debian6为例
1 加载BIOS的硬件信息与进行自我测试,并取得启动设备(如硬盘、光盘、闪存)
2 读取并执行启动设备内MBR的boot loader(如grub等)
3 依据boot loader的设定加载kernel,kernel开始侦测硬件并加在驱动程序
4 硬 ...
Linux的日志,log
- 博客分类:
- Linux
常见系统log文件
/var/auth.log
记录身份认证的信息
/var/log/dmesg
记录系统侦测核心时得到的各项信息
/var/log/lastlog
记录系统所有账户最近一次登录系统的信息
lastlog(8)使用此文件
/var/log/messages
记录系统所有重要信息
...
Linux的系统服务,daemon
- 博客分类:
- Linux
daemon与service
service是长期驻留在内存中的程序。
启动某项服务(service)的程序就是daemon。一般此类程序以d为结尾。
daemon启动方式
启动daemon通常需要执行相应的shell script
/etc/init.d/*
启动script放置处
/etc/*
各服务各自的配置文件
/var/lib/*
各服务产生的数据库
/var/run/*
各服务的进程的PID
相关命令
netstat
找到目前系统开启的网络服务
service --status-all
显示所有服务的状态
...
Linux的进程管理,process
- 博客分类:
- Linux
进程间的常用信号
1
SIGHUP
如果进程终止则挂断该进程
2
SIGINT
从键盘ctrl-c中断进程
9
SIGKILL
强制终止进程
15
SIGTERM
正常终止进程
17
SIGSTOP
从键盘ctrl-z暂停进程
详细见man 7 signal
进程管理相关命令
ps
显示 ...
Linux的账户管理,用户和群组
- 博客分类:
- Linux
用户账户相关命令
useradd
添加新的用户账户
usermod
设置用户账户信息
userdel
删除用户账户
passwd
改变用户帐户密码
chage
改变用户账户密码的使用期限
finger
显示用户账户信息
chfn
改变用户账户真实信息
chsh
改变用户帐户登录的shell
id
显示用户账户的UID和GID
groups
显示用户所属的所有群组名
newgrp
改变用户当前的有效群组
su
切换用户账户
w或who
查看当前已登录的账户信息
last
查看最近登录 ...
apt-get主要语法
apt-get [option] [action] [pkg]
action
install 从源中安装软件包
remove 删除软件包,保留配置文件
purge 完全删除软件包
update 从源中同步软件包的索引文件
upgrade 对现有的软件包进行更新
source 下载软件包源代码
clean 清除本地软件包
autoclean 清除不会再下载的和比较大的软件包
autoremove 自动卸载那些不相关的软件包
用例
1 在线安装vim
# apt-get ins ...
Linux的Shell Script基本语法
- 博客分类:
- Linux
特点
1 纯文本文件
2 包含shell的语法和命令(内部和外部命令)
3 支持正则表达式,管线命令,数据重导向等功能
4 支持数组、循环、条件与逻辑判断
5 不需编译即可执行,且有debug工具
6 script速度较慢,占用资源较多
基 ...
Linux的正则表达式
- 博客分类:
- Linux
正则表达式
以行,为单位进行字符处理行为。对字符串进行搜索,删除,替代等操作。
正则表达式与bash环境下的通配符是不同的概念。
对编码无关的正则表达式符号
[:alnum:]
代表英文大小写字符及数字,亦即0-9,A-Z,a-z
[:alpha:]
代表任何英文大小写字符,亦即A-Z,a-z
[:digit:]
代表数字,亦即0-9
[:lower:]
代表小写字符,亦即a-z
[:upper:]
代表大写字符,亦即A-Z
[:xdigit:]
代表16进制数字,亦即0-9,A-F,a-f
[:blank:]
代表空格和t ...