关键词:移动开发 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.2AVD设备文件,要根据你的系统做相应的修改,如果你不知道设备名称是什么,记住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_ROOTNDK的安装路径。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项目,输入项目名。如图一所示

用VC6 进行Android NDK 开发_第1张图片

图一:建立一个Makefile项目

点击OK 按钮,进入图二,在右边的Command line 框下输入 build ndkdemo,这里build就是我们上面的批处理文件,ndkdemo为我们要输出的执行文件名,其他的可以随便填。

用VC6 进行Android NDK 开发_第2张图片

图二:设置编译命令

第二步:将建立好的build.bat run.bat文件放置在工程目录下。建立一个jni目录,在其目录下放置两个mk文件,名称分别为Application.mkAndroid.mk。这两个文件的作用在这里不再多说,都明白的。现在创建一个简单的演示代码ndkdemo,类似经典的“Hell world”样例代码。

到此为止,一个在VC6下的NDK工程就建立好了。在开始编译运行前,先启动模拟器,直接点击android_emulator.bat就可以启动,模拟器启动好后。就可以在VC6下编译测试我们的Android NDK程序了。

按照编译运行VC6普通工程的方法,我们就可以在VC6下面的Build窗口中看到运行结果,如图三所示。一切OK

用VC6 进行Android NDK 开发_第3张图片

图三:运行结果

三、文件代码

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 <stdio.h>

int main()

{

printf("Hello, This is android NDK test demo!!!");

return 0;

}

项目下载地址:http://download.csdn.net/detail/seniorwizard/4408489

更多相关文章

  1. android解析XML文件的三方法之SAX
  2. android文件下载与保存
  3. android 扫描文件(sdcard添加新的音乐文件时候后,可扫描到)
  4. Android Studio导入Github工程问题总结-download gradle非常慢
  5. Android stutio 中怎么将XML中文件快速findById——Android Layo

随机推荐

  1. JavaScript中的数学对象中的方法
  2. 用于Internet Explorer的javaScript中的i
  3. BootStrap3.0学习--JavaScript 插件
  4. 关于洗牌算法的错误认识
  5. Javascript知识汇总------面向对象中继承
  6. 在关联数组中移动元素[重复]
  7. 对JavaScript优化及规范的一些感想
  8. 键盘出现时,UIWebView滚动。导致点击偏移
  9. 我如何捕获并插入Meteor.Error警报从Mete
  10. JavaScript 实现GridView汇总