CodeBlocks 配置 Android环境

本文详细介绍了如何配置CodeBlocks以支持Android开发,包括下载和安装Android NDK、JDK、SDK,设置环境变量,解决SDK下载问题,安装Cygwin以及相关包,最后在CodeBlocks中配置编译器和调试器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一下载及安装

1.下载和安装Android NDK

  目前版本:android-ndk-r9d,解压。

  设置环境变量NDK_ROOT为android-ndk-r9d所在路径。或将android-ndk-r9d所在路径设置到变量PATH中。

2.下载和安装Android JDK

  目前版本:jdk1.8.0_11,解压并安装。

  设置环境变量JAVA_HOME为jdk1.8.0_11所在路径。

3. 下载和安装 Android SDK

  目前版本:android-sdk_r22.3-windows,解压。

  模拟器设备文件是保存在一个叫.android的目录下,该目录默认在用户的文档根目录下。(1) 可以通过设置环境变量ANDROID_SDK_HOME为模拟器所在文件夹.android的路径。如M:\Android\ Android ,即.android的完整路径为M:\Android\ Android\.android。

如果是从原来默认的目录下复制了.android,则需要修改每个模拟的配置文件。

(2) 修改系统变量PATH,在里面添加%ANDROID_SDK_HOME%/tools;

 (3) 使用SDK Manager下载Android SDK Tools、Android SDK platform-tools、Android SDK Build-tools和Android 4.4W(API 20)的相关东西。

(4)  SDK无法下载解决方法:

解决方法:

第一步:修改hosts文件

在hosts 文件后面增加:

#Google主页

203.208.46.146www.google.com

#这行是为了方便打开Android开发官网 现在好像不用VPN也可以打开

74.125.113.121developer.android.com

#更新的内容从以下地址下载

203.208.46.146 dl.google.com

203.208.46.146 dl-ssl.google.com

第二步:在Android SDK Manager的Tool->Option选项中把https的资源获取方式强制换成http协议获取的方式。(Others选项第一个)

4.下载和安装Cygwin

下载地址:http://cygwin.com/setup.exe

(1) 必须安装如下包:gcc、g++、make、git包,建议安装如下包:ncurses、bison、gettext、gettext-devel、textinfo。

(2) Cygwin及git安装好后,进入cygwin,输入git –version,如果能正确显示git的版本就表示git安装没有问题,就可以开始有选择地下载Android的源码了。

建议安装如下包:

A.     bionic,Android没有用glibc,用的是bionic Libc,但对C++的兼容不好。

命令如下:

https://android.googlesource.com/platform/bionic.git

B.     build,其实我们只是要参考Android的一些编译链接选项。

命令如下:

git clonehttps://android.googlesource.com/platform/build.git

C.     system/core,其实我们只是要一个头文件,AndroidConfig.h

命令如下:

git clonehttps://android.googlesource.com/platform/system/core.git

D.     frameworks/base,如果要进行opengl es 的3D开发,一定要下载这个包,因为opengl es的头文件在这个包中,

命令如下:

git clonehttps://android.googlesource.com/platform/frameworks/base.git

更多Android项目信息请访问https://android.googlesource.com/,大家可根据自已的兴趣选择下载。

(3) 设置环境变量NDK_ROOT
在Cygwin环境中设置Android NDK安装目录环境变量。在Cygwin安装目录的Home/Administrator目录下,有文件“.bash_profile”表示用户的配置文件,在该文件最后增加下面两行

NDK_ROOT=/cygdrive/M/Android/android-ndk-r9d

export NDK_ROOT

其中/cygdrive/M表示Windows下的M盘。上述配置表示设置NDK的安装目录为Windows下的M:\Android\android-ndk-r9d,即Android NDK安装在该目录下。

注意修改这个文件不要使用记事本。记事本会把回车变成0A0D,而Cygwin只需要0A。我是用WinHex这类的二进制工具把最后两行复制进去。然后把0D删除才搞定的。

 

二、模拟器

1. 模拟器制作

在Android SDK下有个AVD Manager.exe程序,用来制作模拟器。制作的模拟器保存在默认路径或者指定的ANDROID_SDK_HOME目录下。

(1) 确保下面已安装:

(2)Create 一个模拟器 ,

选中新建的ANDROID模拟器,点击Start,然后点击Launch。

2.命令行启动

使用SDK目录下的tools目录下的emulator.exe启动模拟器。如输入命令:

emulator – avd Nexus,其中Nexus为已经制作好的模拟器名称。

命令:emulator – avd Nexus-partition-size 128。表示修改系统分区大小 。

命令:emulator – avd Nexus –sdcard M:\Android\sdcard.img。表示加载指定SD卡。

3.获取模拟器列表

命令adb devices。显示已经启动的模拟器列表 。

注:adb在android-sdk-windows\platform-tools下。

4.指定device来执行adb shell

命令:adb –s devicename shell,如adb –s emulator-5554 shell

emulator-5554为命令adb devices显示的设备名。

5.设置模拟器的/system目录为可写

命令:adb remount

6.文件上传/下载

上传命令:adb push fname /dir(fname和/dir有空格隔开)

把本地文件fname上传到模拟器目录dir。如果是上传到模拟器的system目录,需要先执行adb remount命令。

下载命令:adb pull fname。

把模拟器上的文件fname下载到本地当前目录。Fname为全路径,如/system/build.prop。

默认情况下,SD卡加载在模拟器的目录/sdcard下。

7.设置ROOT权限

通过命令:adb root重启adb,带root权限。

三 编译和运行测试

1.检测环境变量

启动 Cygwin后,输入命令:

echo $NDK_ROO

显示设置的 NDK安装目录环境变量,应该显示:

/cygdrive/ M/Android/android-ndk-r9d

表示环境变量设置正确。

2.编译程序

启动Cygwin后,切换到NDK的例子目录,如输入命令:

cd $NDK_ROOT/tests/build/multi-abi

切换到multi-abi例子目录下,然后编译,输入命令:

$NDK_ROOT/ndk-build

如果编译成功,会在multi-abi目录下生成libs目录,该目录下会有多个目录,如armeabi下就有生成的可执行文件multi-hello。

3.上传及运行程序

首先执行命令:adb remount,切换模拟器/system为可写。

然后执行命令:adb push multi-hello/system/app/multi-hello。

这是需要执行命令修改权限为可执行,命令为:

adb shell chmod 777 /system/app/multi-hello

(注:chmod是改变权限的,0004表示可读,0002表示可写,0001表示可执行。777三个位分别代表文件拥有者、同组用户和其他用户)

最后进入交互的shell,执行命令:adb shell

 

这是进入到模拟器命令行模式,运行程序,命令:/system/app/multi-hello

8.其他 adb命令

(1)指定设备

在adb命令加参数-s并指定设备名称,如adb-s emulator-5554 remount

(2)服务

启动adb start-server。

关闭 adb kill-server

(3) 安装/卸载程序

安装:adb install xxx.apk

卸载:adb uninstall 包名(如org.oger3d.gles1Sample),加-k参数表示保留数据和缓冲目录。

重新安装 adb install –r xxx.apk

(4)切换到模拟器shell ,即命令adb shell

然后输入getprop命令,可查看所有模拟器信息。

输入 getprop ro.product.cpu.abi可以查看系统abi

四、Codeblocks配置

1.下载并安装CodeBlocks

下载地址:http://www.codeblocks.org/downloads/26

 版本:codeblocks-13.12mingw-setup-TDM-GCC-481.exe或codeblocks-13.12mingw-setup.exe

2.环境变量设置

通过菜单“Settings ->Environment选择弹出环境变量配置

增加以下环境变量:

ANDK=M:\Android\android-ndk-r9d    (NDK安装目录)

AARMTOOLS=$(ANDK)\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64

AARM=$(ANDK)\platforms\android-19\arch-arm

CYG=M:\Android\Cygwin

ASDK=M:\Android\android-sdk-windows

3. 编译器配置

通过菜单“设置->Compiler,选择弹出编译器配置界面

在编译器列表中选择GNU ARM GCC Compiler编译器进行配置,也可以复制一份

GUN ARM GCC Compiler For Android。

(1)  设置工具链Toolchain

(A)  将“可执行工具链”页的编译器安装目录设置为toolchain的目录:$(AARMTOOLS),该目录应该包含bin等子目录。

(B)   配置“可执行工具链”页程序文件所有exe,选择A中bin目录下对应的程序便可。

(C)   在“可执行工具链”页的附加路径加入Cygwin的bin目录,因为toolchain是用Cygwin构建的,需要Cygwin的运行库。

(D)  在“搜索目录”页的编译器中加入Toolchain的头文件目录,如$(AARMTOOLS)\lib\gcc\arm-linux-androideabi\4.8\include和$(AARM)\usr\include

(E)   在“搜索目录”页的链接器中,加入$(AARM)\usr\lib

(F)   将$ (AARM )\usr\lib下的lib复制到$(AARMTOOLS )\arm-linux-androideabi\lib

 

(2)  设置调试器

(A)  选择菜单:设置——Debugger,GDB/CDB debugger——Create Config,

创建一个Android调试器

配置Executable path为 $(AARMTOOLS)\bin\arm-linux-androideabi-gdb.exe

(B)  配置“可执行工具链”页调试器为Android调试器,如上图所示。

 

(3)  创建工程

(A)    创建TestC和TestCpp工程,分别为C和C++工程的控制台程序。使用GNU ARM GCC Compiler For Android 编译器。

(B)    在构建前后的附加步骤中的构建之后的步骤,增加以下内容,并选中即使目标是最新的也总是执行。

$(ASDK)\platform-tools\adb forward tcp:8888tcp:8888

$(ASDK)\platform-tools\adb.exe push$exe_output /data

$(ASDK)\platform-tools\adb.exe shell chmod777 /data/$exe_name.$exe_ext

C:\Windows\system32\cmd.exe /c start $(ASDK)\platform-tools\adb.exeshell  gdbserver :8888/data/$exe_name.$exe_ext

(4)在项目/目标选项调试器中将IP地址改为127.0.0.1,端口为8888。

(5) 为了正确编译C++工程,对编译器搜索路径中:

编译器增加:$(ANDK)\sources\cxx-stl\gnu-libstdc++\4.8\include

$(ANDK)\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi\include

链接器增加:$(ANDK)\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi

链接器设置——链接库:$(ANDK)\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi\libgnustl_static.a

开源——开源不仅仅意味着免费,但就算是仅仅是免费这一点,就非常重要了,不是吗? 跨平台——我的工作需要写的C++程序,就要求是跨Linux和Windows平台,没有选择Code::Blocks之前,我在Linux下用KDevelop,在Windows下使用Borland 或 Microsoft的软件,由于二者不兼容而要多做的事情太多。或许你暂时并不考虑跨平台,但为了将来,能跨平台总不是坏事,对了Code::Blocks也支持Mac系统呢。 纯C/C++写成——作为一名C++程序员,我“顽固”地保留一点可能并不必要的自尊:写C++程序,还是用C++写的IDE吧。让我选择一款以其它语言写成的IDE来写C++程序,我有那么一点点完全不必要的心理障碍。其实用C++写的程序最大好处是你不用额外安装庞大的运行环境,譬如你不用装.net也不装java。 支持多编译器——包括Borland C++,、VC++、Inter C++等等超过20个不同产家或版本编译器支持。无特定要求下,我还是主要用g++。配对的,调试器也是支持多种。 插件式的框架——插件式的集成开发环境,最著名的是Java编程工具Eclipse了,这种方式让一款IDE保留了良好的可扩展性,应该说,作为一款开源的IDE,这是最合理的选择。Code::Blocks很多核心功能,包括“调试功能”,都通过插件来实现。非核心方面的插件嘛,我用得最多的,是代码格式美化、自动上Google Codes查找……偶尔也会玩玩“俄罗斯方块”以及“贪吃蛇”…… 经常更新——几乎每个月都会有更新。开源软件最怕的就是不更新了。 内嵌可视设计——和大家熟悉的VB、Delphi/C++Builder相比,它的可视窗口设计器,其“傻瓜性”差了一大截,其主要原因在在主流的跨平台图形窗口的定位体系,都是采用定位“容器”来实现的,这一点一开始会不太习惯,但在熟悉之后,设计各种对话框,也非常直观。一点点不直观,换来的是你的程序很容易迁移到别的操作系统,同时还让你对窗口设计更深入了,倒也值。 C++扩展库支持——通过它的一个用以支持Dev C++的插件,可以下载大量C++开源的扩展库。比如网络操作,图形算法,压缩、加密等等……我现在最常用到一款就是iconv,用来转换汉字编码。扩展库下载,及使用方法,请见本站相关课程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值