Android环境搭建及git使用
2014-12-05 16:49
176 查看
环境搭建 | 1、安装ubuntu linux 10.10 64位 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev openssh-server vim) 2、安装sun-java6-jdk sudo apt-get update sudo apt-get install sun-java6-jdk (版本中已经有open-java6-jdk,但是根据高通文档需求,需要安装sunjdk,不过openjdk也能编过....为了避免不必要的编译错误出现,还是换sunjdk) 3、切换java和javac版本,到sun-java6-jdk update-alternatives --config java update-alternatives --config javac 4、(可选)安装source insight, sudo apt-get install wine 5、安装eclipse开发工具 sudo apt-get install eclipse 6、编译服务器的使用 定制版中有一个bug , ssh协议不能用其他用户链接本机,原因是/etc/ssh/中少了几个key, 运行 sudo ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N "" sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N "" sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" 安装openssh-server sudo apt-get install openssh-server (定制版不需要安装) |
代码下载 | 1、安装curl 在终端输入命令行:sudo apt-get install curl 2、下载repo sudo curl http://xxxx:8080/static/repo > /usr/local/bin/repo 下载repo脚本文件到/usr/local/bin目录下,并保存在文件repo中。 给repo文件可执行权限 sudo chmod +x /usr/local/bin/repo (若无法下载repo,需要切换root用户执行,有时候sudo也会失败...) 3、如果是第一次下载继续此步。否则跳过此步。 (a)首先,拷贝id文件到任意目录下,执行sh xxx.id (id文件由付江提供) (b)登陆到xxxx:8080,输入用户名,密码。点右上角setting->SSH Pubilc Keys (d)点Add Key,然后在终端下运行sudo gedit ~/.ssh/id_rsa.pub打开文件,将内容粘贴到网页编辑框中。 4、获取Android代码: 创建一个存放代码的目录: mkdir sourcecode cd sourcecode 在当前目录下中指定服务器分支等信息: 命令行输入:repo init -u gerrit_host:manifest.git -u :url gerrit服务器地址 每次 repo init -u gerrit_host:manifest.git时,都可以在信息中查看到目前的git分支情况 • [new branch] OS/4022 -> origin/OS/4022 此分支为Qcom4022版本代码,为代码基础版本 • [new branch] OS/4022forOS -> origin/OS/4022forOS 此分支为Qcom4022版本代码,为目前代码修改调试版本 • [new branch] OS/4022forWNC -> origin/OS/4022forWNC 此分支为WNC4022版本代码,为代码修改调试版本 • [new branch] OS/4030 -> origin/OS/4030 此分支为Qcom4030版本代码,为代码修改调试版本 此时 repo init -u gerrit_host:manifest.git -b xxxx-SDV001 就可以下到指定分支的代码 -b:branch git 服务器中代码的分支 repo init -u kratos:manifest.git -b ICS/QC8064_1030 5、repo init结束后,我们会在当前目录看到隐藏文件.repo,然后开始同步代码: 命令行输入:repo sync (把所指定的分支代码同步到本地) |
下载代码 | # repo init -u kratos:manifest.git -b JB/QC8064_xxxx # repo sync -j4 |
代码编译 | 下载代码完成后,可以开始进行编译操作: 编译命令(代码根目录下执行) (1)source build/envsetup.sh (2)choosecombo 1.devices 2.debug 7.msm8660_surf 3.eng 以上为设置环境变量,工具链,参数,编译选项 每次编译前都需要进行以上操作,若执行过编译操作的终端端口未关闭则不需要重新配置 (3) make -j4 -j* 为线程数,视pc cpu核心数而定 SDK编译 需要在4020基础上编译 #make sdk for 4020 cd android source build/envsetup.sh lunch sdk-eng make sdk 出现错误时: cp vendor/qcom/proprietary/webkit-bin/msm8660/libwebkitaccel.so out/target/product/generic/obj/lib/ cp vendor/qcom/proprietary/webkit-bin/msm8660/libwebkitaccel.so out/target/product/generic/system/lib/ make sdk 等到完成后 out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86.zip 就是编译出的SDK 解压后需要把GOOGLE SDK 中的tools/emulator 文件复制到我们的sdk/tools/中 需要在xxxx分支上编译 #make NDK for 4030 ndk #需要安装android-ndk-r6 source build/envsetup.sh choosecombo Device release msm8660_surf eng make #make 完成后,执行下面到步骤 ./build/tools/build-ndk-sysroot.sh ./build/tools/build-platforms.sh cp -af ndk/build/platforms/android-3 ../android-ndk-r6/platforms/ cp -af prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/* ../android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/ cp prebuilt/android-arm/gdbserver/gdbserver ../android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/ 最后:android-ndk-r6目录就是4030的NDK (如果你是32位操作系统 编译时候出现: build/core/main.mk:73: You are attempting to build on a 32-bit system. build/core/main.mk:74: Only 64-bit build environments are supported 请编辑/build/core/main.mk vim /build/core/main.mk 注释掉ifneq (64,$(findstring 64,$(build_arch))) 添加ifneq (i686,$(findstring i686,$(build_arch))) ) |
adb connect | 在$(androidsource)/system/core/rootdir/init.rc 中找到 on property: ro.kernel.qemu=1 #setprop service.adb.tcp.port 5555 start adbd on property: persist.service.adb.enable=1 #setprop service.adb.tcp.port 5555 start adbd 取消红色代码部分的#注释 重新编译,烧写 boot.img |
烧录 | adb reboot bootloader ./fastboot erase boot ./fastboot erase system ./fastboot erase userdata ./fastboot erase persist ./fastboot flash boot boot.img ./fastboot flash system system.img ./fastboot flash userdata userdata.img ./fastboot flash persist persist.img ./fastboot reboot |
提交代码 | git push gnu HEAD:refs/for/ICS/30150_temp |
提交代码 | 1.修改提交过程 (1)执行repo start branchname --all 创建本地所有git的branchname 此命令是为所有的.git仓库设置git branch(branchname可以是任意名字,若不想在本地同时使用多个分支则可跳过) 完成后可在包含.git的目录下,使用git branch看到新建的branchname (如果实在找不到.git文件....可以查看代码根目录下的.repo/manifest.xml文件, 如 <project name="platform/frameworks/base" path="frameworks/base" /> project name="platform/frameworks/base" 后为git服务器端代码地址, path="frameworks/base" 这个为本地代码路径,说明frameworks/base/下包含.git,可以进行git命令操作) (2)cd project 进入修改的代码所在模块,(有.git的隐藏文件的目录) (3)git status 进入目录后执行,查看代码的状态,如修改删除(修改过代码后,执行此操作,会看到修改过的文件为红色) (4)git add files files为具体要提交的单个文件, 如果文件较多则执行 git add . 提交当前目录模块下.git的所有文件 (5)git commit -m “message by user” 将INDEX中的修改提交到本地仓库, message为change的标题 , by user 则是修改人Idcode ( 此时执行git status,会看到修改过的文件已经被添加,文件名路径名为绿色) 以上的所有操作都是本地操作,不会影响到服务器上的代码,真正的修改提交是git push操作,将你前面添加的文件push到服务器端,以完成修改提交: (6)git push nebula HEAD:refs/for/xxxx-SDV001 将所有修改提交到OS/4022分支,命令执行完以后,会在服务器上生成一个change, 此方法是通过gerrit审核 git push nebula HEAD:refs/heads/xxxx-SDV001 直接push修改到git 服务器 2.更新 如果以前提交的change还没有关闭,或者提交的代码审查未通过,需要更新. cd project git status git add files 或 git add . git commit --amend -m “message” 将INDEX中的修改提交到本地仓库,替换一个已经发布的提交,message为change的标题 git push nebula HEAD:refs/for/xxxx-SDV001 git push gnu HEAD:refs/for/ ICS/30150_temp 3.合并分支 首先切换到想要合并到的分支下,运行'git merge'命令,例如将experiment分支合并到master分支,切换到master分支后运行: $git merge --no-commit --no-ff experiment 如 果合并没有顺利完成,需要进行冲突处理,这种情形下,可以通过下面的方式来解决: (1)打开提示冲突的文件,会看到冲突标记,修改完成之后,运行'git add'重新载入(re-stage)文件,然后运行'git commit'提交; (2)如果想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导解决所有冲突,同样在所有冲突解决后,需要运行'git add'重新载入(re-stage)文件,然后运行'git commit'提交 4.需要用到的功能 (1)git log: 命令行输入:$git log -p 显示代码详细修改信息 获取某个文件的历史修改信息 命令行输入:git log test.java 命令行输入:git log commit id (2)git pull: repo sync 可以同步git服务器的代码,与本地做更新操作,但是如果需要单个projects 可以使用 git pull 对于repo工具创建的git project要使用命令:git pull nebula <remote分支名> (3)git branch: git branch 可以查看当前 git 分支 git branch newbranchname 可以新建分支 (4)git checkout: git checkout branch 可以在多个branch切换 git checkout -b newbranchname 可以新建分支,且直接切换到新建的分支上 (5)git reset : git reset HEAD^ 回退 commit 的信息(撤销最近的一次commit,只保留working tree的源代码级的修改,而index file和commit都会恢复到上一次commit的状态,“mixed”是git reset的默认选项) 如:git add test.java 添加test.java到INDEX中 git reset test.java 取消test.java的添加 恢复到原始代码: git reset --hard 恢复到原始代码,之前所有的add和commit操作都被恢复 reset的一系列功能只能对git add和git commit进行操作,当代码已经提交给服务器分支时,请进行“更新change”操作 (6)git diff: git diff experimental mybranch experimental和mybranch为分支名 (7)如何回退到一个历史版本 git log 查看需要所有的commit git reset commitID 回退到历史版本 git diff 可以看见源代码变为了历史版本 git reset --hard 回退到以上的操作 制作patch 修改代码后, git status 查看修改 git add file 添加修改后的文件 (如果文件较多,用git add . 添加当前目录下的所有修改 git commit -m `pwd` commit信息为路径名,方便分辨patch路径 git format-patch -1 |
恢复版本 | git reset --hard git rebase branch-name |
相关文章推荐
- android游戏开发框架libgdx的使用(一)--环境搭建
- 使用R7版NDK搭建Android开发环境
- 使用R7版NDK搭建Android开发环境[不使用Cgywin]
- window7下搭建cocos2d-x android开发环境【图文示例 不使用cygwin】
- Android 开发环境搭建和基本的使用
- Android开发环境的搭建和模拟器的使用
- android游戏开发框架libgdx的使用(一)--环境搭建
- Android游戏引擎libgdx使用教程1:搭建libgdx环境
- android游戏开发框架libgdx的使用-环境搭建
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录
- 在Windows系统中使用C++进行Android应用开发的环境搭建
- android系统开发指南(常用环境的搭建和使用)
- Android环境搭建(含NDK的配置与使用)
- Android开发环境快速搭建(使用ADT Bundle)
- Linux 环境使用 Eclipse 搭建 Android 开发环境
- 如何搭建Android的开发环境->在unbuntu 10.04 上使用ubuntu的一些技巧(四)
- Android开发环境的搭建以及模拟器的使用
- win7下使用VMware和ubuntu搭建Android开发环境
- android游戏开发框架libgdx的使用(一)--环境搭建
- Android学习笔记---Android概念,开发环境的搭建,前景分析,模拟器的使用....