用vc 写android程序代码,用VC6 进行Android NDK 开发
关键词:移动开发Android NDK VC6Eclipse作为常用的Anddroid IDE开发环境,得到了广泛的应用。但是因为其系统庞大,如果机器的性能差一些,就得忍受其蜗牛般的速度。在做NDK开发的时候,我们只需要编译C/C++代码,有没有可能使用更快速的IDE环境,比如VC6来实现开发Android NDK开发呢,经过尝试,发现是可以实现的。下面就把步骤整理出来,以飨有相同兴趣的朋友。..
关键词:移动开发Android NDK VC6
Eclipse作为常用的Anddroid IDE开发环境,得到了广泛的应用。但是因为其系统庞大,如果机器的性能差一些,就得忍受其蜗牛般的速度。在做NDK开发的时候,我们只需要编译C/C++代码,有没有可能使用更快速的IDE环境,比如VC6来实现开发Android NDK开发呢,经过尝试,发现是可以实现的。下面就把步骤整理出来,以飨有相同兴趣的朋友。
假设我们已经建立好了Andriod NDK开发所需的所有环境(最小包括CygWin和NDK),这方面的文档网络上到处都是,这里就不在赘述。
一、准备工作
为了方便建立一个VC6下的Android NDK开发工程,在这里先建立三个批处理文件android_emulator.bat用于打开模拟器,build.bat用于编译NDK程序,run.bat将编译结果复制到模拟器中指定位置,并运行。
android_emulator.bat启动模拟器
for /f %%a in (‘adb get-state’) do set dev_state=%%a
if not “%dev_state%”==”unknown” goto End
start “android 2.2 emulator “emulator.exe –shell –avd a2.2 –partition-size 128
:End
解释:
for /f %%a in (‘adb get-state’) do set dev_state=%%a检测是否启动了模拟器
if not “%dev_state%”==”unknown” goto End如果未启动,则启动模拟器,否则结束批处理。
start “android 2.2 emulator “emulator.exe –shell –avd a2.2 –partition-size 128启动模拟器,其中–avd后的a2.2为AVD设备文件,要根据你的系统做相应的修改,如果你不知道设备名称是什么,记住AVD设备文件是保存在一个叫.android的目录下,该目录默认在用户的文档根目录下,如C:\Users\Administrator\Documents。
build.bat编译工程
c:\cygwin\bin\bash --login -c "cd /cygdrive/e/JniLib/MediaInfo/jni && $NDK_ROOT/ndk-build"
call run.bat %1
解释:
c:\cygwin\为cygwin的安装目录,这个需要根据你的系统中cygwin的安装位置做相应调整。cd /cygdrive/e/JniLib/MediaInfo/jni指定你的工程文件的绝对路径,要以cygwin的方式指定,比如e:/在这里需要写成/cygdrive/e/。$NDK_ROOT为NDK的安装路径。call run.bat编译成功后启动执行,只有在生成执行文件时才需要,如果只建立动态或者静态库,则不需要。
run.bat运行编译好的执行文件
adb push ../libs/armeabi/%1 /dev/sample/%1
adb shell chmod 777 /dev/sample/%1
adb shell /dev/sample/%1
解释:这里假设已经在模拟器中建立好/dev/sample目录,如果没有该目录,可以调用
adb shell mkdir /dev/sample
建立该目录。
adb push ../libs/armeabi/%1 /dev/sample/%1复制文件到模拟器中
adb shell chmod 777 /dev/sample/%1修改文件权限
adb shell /dev/sample/%1运行文件。
二、 VC中建立运行一个NDK工程
做好上面的准备工作,现在我们就可以在VC中建立一个Android NDK工程项目了。
第一步:在VC6中建立一个Makefile项目,输入项目名。如图一所示
图一:建立一个Makefile项目
点击OK 按钮,进入图二,在右边的Command line框下输入build ndkdemo,这里build就是我们上面的批处理文件,ndkdemo为我们要输出的执行文件名,其他的可以随便填。
图二:设置编译命令
第二步:将建立好的build.bat run.bat文件放置在工程目录下。建立一个jni目录,在其目录下放置两个mk文件,名称分别为Application.mk,Android.mk。这两个文件的作用在这里不再多说,都明白的。现在创建一个简单的演示代码ndkdemo,类似经典的“Hell world”样例代码。
到此为止,一个在VC6下的NDK工程就建立好了。在开始编译运行前,先启动模拟器,直接点击android_emulator.bat就可以启动,模拟器启动好后。就可以在VC6下编译测试我们的Android NDK程序了。
按照编译运行VC6普通工程的方法,我们就可以在VC6下面的Build窗口中看到运行结果,如图三所示。一切OK。
图三:运行结果
三、文件代码
1. Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := $(_ARM_MODE)
LOCAL_SRC_FILES:= ndkdemo.cpp
LOCAL_MODULE:= ndkdemo
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib \
LOCAL_SHARED_LIBRARIES := stdc++
include $(BUILD_EXECUTABLE)
2.Application.mk
APP_ABI := armeabi
APP_PLATFORM := android-8
_ARM_MODE := arm
ifeq ($(NDK_DEBUG),1)
APP_OPTIM := debug
OPT_CFLAGS :=
else
APP_OPTIM := release
OPT_CFLAGS := -O3 -mlong-calls -fstrict-aliasing -ffast-math
endif
ifeq ($(_ARM_MODE), arm)
OPT_CFLAGS += -fprefetch-loop-arrays
# OPT_CFLAGS += -march=armv6j -mtune=arm1136j-s -msoft-float
endif
OPT_CPPFLAGS := $(OPT_CLFAGS)
APP_CFLAGS := $(APP_CFLAGS) $(OPT_CFLAGS)
APP_CPPFLAGS := $(APP_CPPFLAGS) $(OPT_CPPFLAGS)
3. ndkdemo.cpp
// ndkdemo.cpp
#include
int main()
{
printf("Hello, This is android NDK test demo!!!");
return 0;
}
更多推荐
所有评论(0)