2011-3的笔记:
---------------------------------------------------------------------------------------------------------------------------------
Telichip android:2.2
------------------------------------------------------------------------------------------------------------BUILD_ID--------
BUILD_ID是版本号或者分支
2.1是éclair,2.2是master,0107/2.2是frg83
----------------------------------------------------------------------------------------------------编译android-----------
编译命令顺序:
1. . build/envsetup.sh
2. Lunch
3. cd kernel
4. make tcc92xx_defconfig
5. make menuconfig
6. make
7. cd ../bootable/bootloader/lk
8. make tcc8900_evm
9. cd http://www.cnblogs.com/..
10. make
11. mkmtdimg
注:步骤4只在最初执行一次,步骤5、6只在添加删除driver时执行,步骤7、8、9只在修改了boot时执行,不改boot时,lk也只执行一次。
2.2用jdk1.5编译 1.6没试过
2.3用1.6编译,建议64位系统,32位需要修改文件。
-------------商工
在源码目录下 执行 . /build/envsetup.sh (点后有空格)
多出如下命令:
-croot Changes directory to the top of the tree
-m makes from the top of the tree
-mm builds all of the modules in the current directory
-mmm builds all of the modules in the supplied directory
-cgrep Greps on all local C/C++ files
-jgrep Greps on all local Java files
-resgrep Greps on all local res/*.xml files
-godir go to the directory containing afile
----------------------------------------------------------------------------------------------------编译android模块
用mmm编译指定目录的模块
如编译联系人 mmm packages/apps/contacts/
生成两个文件 out/target/product/generic/data/app/contactTests.apk
out/target/product/generic/data/app/contact.apk
使用命令 make snod 重新生成system.img
不改驱动、不改boot
在froyo目录:
. build/envsetup.sh
lunch
cd kernel
tcc92xx_defconfig
cd .. (返回froyo目录)
make
mkmtdimg
mkmtdimg例:
mkmtdimg --boot out/target/product/tcc8900/boot.img
--system out/target/product/tcc8900/system.img
--recovery out/target/product/tcc8900/recovery.img
--output tcc8900_mtd.img
(在当前目录生成tcc8900_mtd.img)
--------------------------------------------------------------------------------------------------------编译Android SDK
编译SDK文档 froyo110107/development/docs
howto_build_sdk.txt
cd /my_android_git
.build/envsetup.sh
make sdk
位置:
out/host/linux-x86/sdk/
名字:android-sdk_eng.root_linux_x86.zip
如果处理器为多核
make –j4 sdk
解压后:
android sdk中的模拟器emulator程序在android-sdk_eng.root_linux_x86/tools/目录下
运行sdk中的android模拟器需要加载image:
默认加载的是android-sdk_eng.root_linux_x86/tools/lib/images(此image文件夹关联的是/froyo/out/host/linux-x86/sdk/android-sdk_eng.root_linux_x86/platforms/android-2.2.1/images)下的
kernel-gemu ramdisk.img system.img userdata.img
-------------------------------------------------------------------------------------------------android模拟器
不编译生成SDK的话
模拟器在/froyo/out/host/linux-x86/bin目录下
ramdisk.img system.img userdata.img 在
/froyo/out/target/product/generic/目录下
为了使用方便添加些环境变量
export Android_PRODUCT_OUT=/froyo/out/target/product/generic
export Android_PRODUCT_OUT_BIN=/froyo/out/host/linux_x86/bin
export PATH=${PATH}:S{Android_PRODOUCT_OUT_BIN}
source ~/.bashrc
emulator –image system.img –data userdata.img –ramdisk ramdisk.img
--------------------------------------------------------------------------------------------------------------------- 编译android下载的相关库------------
lk.rom 在 bootable/bootloader/lk/build_tcc8900_evm
下载相关库文件
sudo apt-get install git-core gnupg fiex bison gperf build_essential zip curl zlib1g_dev gcc_multilib g++_multilib libc6_dev_i386 lib32ncurses5_dev ia32_libs x11proto_core_dev libx11_dev lib32readine5_dev lib32z_dev
NAND驱动:
bootable/bootloader/tcboot/driver/nand/nand_io_v7.c
nand_io_v7.h在
bootable/bootloader/lk/platform/tcc_shared/include/tnftl
froyo_110107/bootable/bootloader/tcboot/include/tnftl
froyo_110107/hardware/telechips/nand/include/tnftl
Google android官网 developer.android.com(国内屏蔽)
镜像:
androidappdocs.appspot.com
txt.appspot.com/developer.android.com
---------------------------------------------------------------------------------------------------------------------------------
Android ADB工具
Android Debug Bridge
android提供的通用调试工具,可以管理设备或者手机模拟器
安装应用到模拟器
adb install app.apk
卸载
adb shell 进入设备或者模拟器的shell环境
cd data/app
rm app.apk
只执行一条adb shell命令
adb shell dmesg 打印内核的调试信息
---------------------------------------------------------------------------------------------------------------------------------
linux常用命令
----------------------------------------------------------------------------------------------------------减压缩----------
杯具了,想不明白用的那么熟了,过几天没用还是照常忘记,记下。
减压:
tar -xvf /for gz
tar -jxvf /for bz2
查看系统版本
uname –r
---------------------------------------------------------------------------------------------------添加系统源-------------
添加系统源 ubuntu10.10 root权限
可以直接修改/etc/apt/sources.list
命令:
sudo add-apt-repository “deb http://archive.ubuntu.com/ubuntu dapper main multiverse”
sudo add-apt-repository “deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse”
更新源:
sudo apt-get update
安装JDK5
sudo apt-get install sun-java5-jdk
配置jdk5为默认的JAVA开发环境
sudo update-java-alternatives –s java-1.5.0-sun
哈工大源 run.hit.edu.cn
配置环境变量
mkdir ~/bin
PATH=~/bin:$PATH
--------------------------------------------------------------------------------------------------repo------------------
通过curl下载repo脚本(安装好curl)
curl http://android.git.kernel.org.repo>~/bin/reop
chmod a+x ~/bin/repo
初始化repo
如下载1.5的android源代码cupcake
repo init –u git://android.git.kernel.org//platform/manifest.git –b cupcake
注意:下载文件所在目录为repo init执行时所在目录,即需要下载到那个目录就在那个目录下初始化repo
repo sync(开始下载)(中断后可以用此命令接着上次中断的继续下载)
----------------------------------------------------------------------------------------------操作系统多少位------------
查看ubuntus 是多少位的系统
file /bin/ls
或者
getconf –a|grep LONG_BIT
-----------------------------------------------------------------------------------------------linux环境变量----------
LINUX系统有3个级别的环境变量
/etc/environment是最高级别的
Ubuntu环境变量
/etc/profile 登陆时操作系统使用的第一个文件
/etc/environment 第二个使用的
/etc/bash.bashrc (自己用的)
修改.bashrc 只对当前用户有效
/etc/profile对所有用户有效,加载错误系统无法启动
~/.bash_profile每个用户都可以使用的
使修改立即生效
source
例 source /etc/bash.bashrc
相同名字的环境变量,后写入的先起作用
:(冒汗表示并列)
.(点表示操作的当前目录)
$表示该变量本次定义之前的值
export A=/q/jing
export A=/cd/cdr:$A
就是 A=/cd/cdv:/q/jing
命令env显示所有的环境变量
PATH 决定shell将在哪些目录中寻找命令或程序
HOME 当前用户主目录
SHELL 当前用户使用的是那种shell
HISTSIZE 保存历史命令记录的条数
LOGNAME 当前用户的登录名
PS1 是基本命令提示符,root是#,普通用户是$
ln 常用参数 –s
ln –s 源文件 目标文件
-s 只是在指定位置生成一个文件的镜像,不会占用控件
没有指定-s会在目标位置生成一个和源文件同样大小的文件
无论是软连接还是硬连接,文件都会保持同步变化
当用ls查看文件时,有的文件后面有@符合,就是用ln命令生成的文件。
用ls –l命令查看link的路径
-----------------------------------------------------------------------------------------------修改虚拟机磁盘-----------
增加虚拟机磁盘大小
安装目录 wmware-vdiskmanager
CMD下命令
wmware-vdiskmanager –x 40Gb “J:/vmware space/xxx.wmdk”
xxx为虚拟机名字。
------------------------------------------------------------------------------------------------------Cygwin-----------
Cygwin
Cygwin的根目录“/”就是Cygwin的安装目录
例:/ 是指 D:/Cygwin
管理员目录 ~ 是指windows管理员目录
例 ~ 是/cygwin/c/Document and Setting/Administrator