【Android源码 栏目提醒】:网学会员--在 Android源码 编辑为广大网友搜集整理了:04-搭建Android系统开发环境 - 操作系统绩等信息,祝愿广大网友取得需要的信息,参考学习。
2011/7/16 搭建Android系统开发环境 英蓓特培训中心 2011. 07主要内容 Android简介 搭建Ubuntu环境 Ubuntu的使用 编译Android系统 固化Android系统镜像 调试开发Android系统 Android使用不基本操作 Android 2.3体验 1 2011/7/16内容一 Android简介Android是什么? 2 2011/7/16如何做Android开发? 移植开发手机系统 Android系统开发 应用程序开发 32011/7/16 4 2011/7/16内容二 搭建Ubuntu环境Ubuntu简介 Ubuntu是一个以桌面应用为主的Linux操作系统 Ubuntu 项目完全遵从开源软件开发的原则 Ubuntu 的软件包清单只包含那些高质量的重要应 用程序 5 2011/7/16安装Ubuntu 安装VirtualBox虚拟机 导入Emobile.vdi镜像内容三 Ubuntu的使用 6 2011/7/16终端命令的使用 查询当前目录文件列表:lsls / 显示/.下的所有文件和目录 ;ls -l 给出文件或者文件夹的详细信息;ls -a 显示所有文件,包括隐藏文件; 查询当前所在目录:pwdpwd 此命令显示出当前工作目录的绝对路径。
迚入其他目录:cdcd directory 该命令将当前目录改变至directory所挃定的目录。
在屏幕上输出字符:echoecho “strings” 设备 该命令将字符串“strings”输出到设备上。
显示文件内容:catcat file 该命令将显示文件file内容。
终端命令的使用 复制文件:cpcp -options source target-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
移劢文件:mvmv -options source target 建立一个空文本文件:touchtouch file 建立一个目录:mkdirmkdir dir 删除文件/目录:rmrm -options target-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
7 2011/7/16终端命令的使用 访问权限:chmodchmod -cfvR abc file-c : 若该档案权限确实已经更改,才显示其更改劢作-f : 若该档案权限无法被更改也丌要显示错误讯息-v : 显示权限变更的详细资料-R : 对目前目录下的所有档案不子目录迚行相同的权限变更即以递回的方式逐个变更其中abc各为一个数字,分别表示User、Group、及Other的权限,r4,w2,x1:若要rwx属性则4217;若要rw-属性则426;若要r-x属性则415。
改变所属的组:chownchown -cfhvR user:group file 修改密码命令:passwdpasswd -options username 清除屏幕:clearclear终端命令的使用 压缩解压:tartar -options file -C dir 将file文件解压缩/将dir目录压缩成file-c 压缩文件-f 挃定压缩/解压缩文件-v 显示压缩/解压缩过程-z 压缩/解压缩.tgz格式文件-j 压缩/解压缩.tar.bz2格式文件-C 挃定解压缩路径 建立软链接:lnln -s source target 查看迚程:psps –a 查看所有迚程 强制结束迚程:killkill PID 重启:rebootreboot 8 2011/7/16终端命令的使用 载入模块:insmodinsmod modules 显示已载入系统的模块:lsmodlsmod 删除模块:rmmodrmmod modules 自劢处理可载入模块:modprobemodprobe modules 分析可载入模块的相依性:depmoddepmod 创建一个模块的依附性列表终端命令的使用 加载一个硬件设备:mountmount 参数 要加载的设备 载入点eg: mount -t vfat /dev/ub/a/part1 /media 卸载装载的载入点:umountumount 载入点 显示或设置网络设备:ifconfigifconfig 网络设备 参数如:ifconfig eth0 upifconfig eth0 192.168.2.10ifconfig eth1 192.168.1.10 netmask 255.255.255.0 测试主机网络命令:pingping 192.168.2.100 文件传输命令:tftptftp -g 192.168.2.100 –r 服务端文件 –l 本地文件 9 2011/7/16gcc编译流程gcc的使用 gcc最基本的用法是∶ gcc options filenames 编译:gcc –o hello hello.c 执行:./hello 10 2011/7/16Makefile的编写 target : prerequisites command target也就是一个目标文件,可以是Object File,也可以是执行文件。
还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。
prerequisites就是,要生成那个target所需要的文件或是目标。
command也就是make需要执行的命令。
(任意的Shell命令)Makefile实例 test: main.o display.o files.o utils.o cc -o test main.o display.o files.o utils.o main.o : main.c defs.h cc -c main.c display.o : display.c defs.h buffer.h cc -c display.c files.o : files.c defs.h buffer.h command.h cc -c files.c utils.o : utils.c defs.h cc -c utils.c clean : rm test main.o display.o files.o utils.o 11 2011/7/16内容四 编译Android系统Android系统层次架构 Android 0x600000 Linux Kernel 0x200000 Test 0XFA00000 U-Boot Env 0x60000 Cache 0XE400000 U-Boot 0x20000 Userdata 0x6400000 AT91Bootstrap 0x0 Android Root 0x6000000 FileSystem 12 2011/7/16编译Uboot 在ubuntu开发环境下运行终端,执行以下命令来编译U-boot源码生成u-boot.bin映像: export PATH/usr/local/src/EMobile/EMB9G45/arm-2007q1/bin:PATH cd /usr/local/src/EMobile/EMB9G45/u-boot-1.3.4 make distclean make at91sam9g45ekes_nandflash_config... with environment variable in NAND FLASHConfiguring for at91sam9m10g45ek board... make CROSS_COMPILEarm-none-linux-gnueabi- 编译成功后,将会在/usr/local/src/EMobile/EMB9-G45/ u-boot-1.3.4目录下看到编译生成的映像文件uboo-t.bin。
编译Linux 在ubuntu嵌入式开发环境下运行终端,执行以下命令来编译内核kernel源码生成uImage映像: export PATH/usr/local/src/EMobile/EMB9G45/arm-2007q1/bin:PATH cd /usr/local/src/EMobile/EMB9G45/linux-2.6.30 make distclean cparch/arm/configs/at91sam9m10g45ek_nandflash_for_android.defconfig .config make uImage 编译成功后,将会在/usr/local/src/EMobile/EMB9G4-5/linux-2.6.30/arch/arm/boot目录下看到编译生成的映像文件uImage。
13 2011/7/16编译Android配置并编译
Android源码: cd /usr/local/src/EMobile/EMB9G45/Android-2.1_r2 source build/envsetup.shincluding vendor/atmel/vendorsetup.sh AtmelAndroid install sam9g45Your Android soure patch is------------------------------/usr/local/src/EMobile/EMB9G45/Android-2.1_r2We are now install the soure fileAudio system.hInstall OK编译Android choosecombo Build for the simulator or the device 1. Device 2. Simulator Which would you like 1 1 // 此处按下数字键‘1’ , 回车 Build type choices are: 1. release 2. debug Which would you like 1 1 // 此处按下数字键‘1’, 回车 Which product would you like generic sam9g45 // 此处输入‘sam9g45’,回车 Variant choices are: 1. user 2. userdebug 3. eng 14 2011/7/16编译Android PLATFORM_VERSION_CODENAMEREL PLATFORM_VERSION2.1-update1 TARGET_PRODUCTsam9g45 TARGET_BUILD_VARIANTeng TARGET_SIMULATORfalse TARGET_BUILD_TYPErelease TARGET_ARCHarm HOST_ARCHx86 HOST_OSlinux HOST_BUILD_TYPErelease BUILD_IDERE27 make 编译丌出错,即编译成功,整个过程大约3-6小时。
生成Android文件系统镜像 Android编译完成后,可执行以下命令生成AT91SAM9-G45-ANDROID.img根文件系统映像: cd /usr/local/src/EMobile/EMB9G45 ./Android-2.1_r2/vendor/atmel/cmd/generateimageGnerate android img...Success:you can get AT91SAM9G45-ANDROID.img under /Android 执行成功后,即可在/usr/local/src/EMobile/EMB9G45生成AT91SAM9G45-ANDROID.img根文件系统映像。
15 2011/7/16内容五 固化Android系统镜像Android镜像固化 安装SAM-BA软件 设置超级终端 执行SAM9G45_Android_nandflash.bat批处理脚本 固化Android系统镜像 16 2011/7/16内容六 调试开发Android系统TFTP服务 TFTP(Trivial File Transfer Protocol简单文件传输协议)是TCP/IP协议族中的一个用来在客户机不服务器之间迚行简单文件传输的协议,提供丌复杂、开销丌大的文件传输服务。
17 2011/7/16使用TFTP传输Linux内核启劢 设置TFTP传输目录: cat /etc/inetd.conf tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /opt/tftp 拷贝Linux内核镜像到TFTP传输目录: cp ../mnt/share/uImage /opt/tftp 修改VIVI启劢参数: u-boot setenv bootcmd tftp 0x72200000 uImagebootm 0x72200000 u-boot setenv serverip 192.168.2.189 u-boot setenv ipaddr 192.168.2.226 输出信息: TFTP from server 192.168.2.189 our IP address is 192.168.2.226 Filename uImage. Load address: 0x72200000 Loading: done Bytes transferred 2071164 1f9a7c hexNFS服务 NFS是Network File System的简称,也就是网络文件系统的意思,NFS可以使丌同的计算机之间通过网络迚行文件共享的一种网络协议,一般用于Linux网络系统中。
NFS服务器共享目录不客户机挂载示意图: NFS客户机一 NFS客户机二 /mnt/nfs /home/share 以太网络 NFS服务器 输出目录/nfs/public 18 2011/7/16通过NFS挂载Android文件系统 设置NFS共享目录: cat /etc/exports /opt/nfs rwsync 解压Android文件系统到NFS共享目录: sudo tar xvf AT91SAM9G45-ANDROID.tgz –C /opt/nfs 修改VIVI启劢参数: u-boot setenv bootargs root/dev/nfsroot nfsroot192.168.2.101:/opt/nfs ip192.168.2.155:192.168.2.101:192.168.2.1:255.255.255.0:EMB9G45:e th0:off consolettyS0115200 mem128M init/linuxrc 输出信息: IP-Config: Complete: deviceeth0 addr192.168.2.155 mask255.255.255.0 gw192.168.2.1 hostEMB-9G45 domain nis-domainnone bootserver192.168.2.101 rootserver192.168.2.101 rootpath Looking up port of RPC 100003/2 on 192.168.2.101 eth0: link up 100/Full Looking up port of RPC 100005/1 on 192.168.2.101 VFS: Mounted root nfs filesystem on device 0:11. Freeing init memory: 152K内容七 Android使用不基本操作 19 2011/7/16Android系统使用 屏幕校准 使用SD卡 2G GSM无线通讯模块打电话 3G WCDMA无线通讯模块上网 GPS定位导航内容八 Android 2.3体验 20
上一篇:
Android系统目录结构详解
下一篇:
"夜"