Windows平台Adreno SDK编译与运行

Adreno SDK是高通提供的OpenGL开发SDK包,我们可以从里面学习到很多OpenGL知识,也能够加深对高通Adreno GPU特性的了解。

  1. 下载并安装Adreno SDK
    目前最新的版本是Adreno SDK V5.0。
    https://developer.qualcomm.com/software/adreno-gpu-sdk

  2. 编译前准备
    (1) 进入AdrenoSDK\Development\Tutorials\OpenGLES目录,我们尝试编译里面的01_CreateWindow工程。
    (2) 阅读HowToBuildAndroid.txt文件,大致了解我们需要做的工作。由于Adreno SDK V5.0发布于2016年3月,现在的编译环境已经发生了很大改变,我们几乎无法回到当时的编译环境中去。
    (3) 安装Android Studio和ndk,并把ndk路径设置到环境变量,也就是要在命令行下能够运行ndk-build.cmd命令。

  3. so库编译
    (1) 命令行下进入工程AdrenoSDK\Development\Tutorials\OpenGLES\01_CreateWindow\build\Android\jni目录,输入ndk-build编译。
    (2) 修改Application.mk文件可以设置编译某些架构的so,我只想编译arm 64 bit so,就在里面加入一行APP_ABI := arm64-v8a
    (3) 在ndk-build编译时产生如下错误,修改如下:
    a. strcmp、bzero、memcpy等符号找不到
    FrmApplication.cppFrmApplication_Platform.cpp文件中加入相应的头文件#include <string.h>即可。
    b. FrmFile_Platform.cpp文件FrmFile_Open函数内报精度错误
    做如下修改即可
    //LOGI("Opened asset %s at %x", strFileName, (unsigned int)asset);
    LOGI("Opened asset %s at %x", strFileName, asset);
    (4) 修改完错误成后,编译生成libCreateWindow.so

  4. apk编译
    (1) 查看01_CreateWindow\build\Android\AndroidManifest.xml文件,可以发现此App是直接从so进入NativeActivity界面,没有任何Java代码,也就是说编译此apk的目的就是把so库和AndroidManifest.xml文件打包进去。
    (2) 这个工程我们可以下载一个ADT Bundle来打包apk,ADT Bundle里面包含Eclipse、ADT插件和SDK Tools,是已经集成好的IDE环境,可以从如下网站下载到。
    https://www.androiddevtools.cn/
    在这里插入图片描述
    (3) 如果没有JDK则需安装JDK环境。
    (4) 有的Android工程目录下有InstallAssets.bat文件,则需要执行此批处理,作用是把资源文件拷贝到当前Android工程的assets目录下,只是InstallAssets.bat里面的文件夹名称要修改为全小写assets,才能被Eclipse认识。
    (5) 打开ADT Bundle里面的eclipse软件,将01_CreateWindow\build\Android\工程导入进去编译即可生成apk。

  5. 运行
    将生成的apk装载进手机并运行,会发生闪退并打印如下Log,是由于FrmApplication_Platform.cppBOOL CFrmAppContainer::Initialize()函数最后没有return造成的,这里需在函数最末尾加上return TRUE;
    ERROR: The application failed to initialize, the application will now exit.

谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值