一、 Adreno SDK开发环境建立(ubuntu 18.04)
1)现在下载需要的安装包:
Adreno GPU SDK https://developer.qualcomm.com/software/adreno-gpu-sdk
Android NDK https://developer.qualcomm.com/software/snapdragon-profiler
Apache Ant https://ant.apache.org/manualdownload.cgi
Snapdragon Profiler https://developer.qualcomm.com/software/snapdragon-profiler
2)建立环境变量:
export ANDROID_NDK=
export ANDROID_NDK_ROOT=
export ANDROID_SDK=
export ANT_HOME=
export PATH=
P
A
T
H
:
PATH:
PATH:ANDROID_NDK:
A
N
D
R
O
I
D
S
D
K
/
t
o
o
l
s
:
ANDROID_SDK/tools:
ANDROIDSDK/tools:ANDROID_SDK/platform-tools:
$ANT_HOME/bin:
3)编译过程简介:
(1) 打开一个终端,进入工程目录。
(2) 进入Android/jni目录执行: “$ANDROID_NDK/ndk-build”。
(3) 进入上一级目录,执行: ./InstallAssets.sh。
(4) 继续在此目录中执行:android project update -p . -t android-19。
(5) 用ant命令构建项目: ant debug。
(6) 下载生成的apk到手机设备并执行:adb install xx.apk。
二、基于Adreno SDK Framework编程介绍
-
首先是创建实例:
CFrmApplication* FrmCreateApplicationInstance() //创建应用实例
{
return new CSample( “String Name” );
}
通过此过程创建应用实例。 -
对原始数据进行初始化,此部分主要为创建字体打包文件和加载纹理打包资源,主要实现过程为:
m_pFont = new CfrmFontGLES(); 创建字体对象 → m_pFont.Create(“Sample/Fonts/Tuffy12.pak”);创建.pak格式文件→ UI.Initialize(m_pFont,WindowTitle);动态加载字符数据
resource.LoadFromFile( “Samples/Textures/Logo.pak” );家在打包资源生成OpenGLES使用的纹理格式,→ resource.GetTexture( “Logo” );创建纹理→ UI函数将其作为函数形参进行调用。
以上为资源初始化的过程,在此过程中,也通过UI初始化函数初始化了UI界面。后面为渲染函数部分所调用。 -
对事件进行监听:
FrmGetInput( &m_Input, &nButtons, &nPressedButtons );通过此函数来获取输入事件,并决定接下 来的动作,有示例为:
VOID CSample::Update()
{
FrmLogMessage(“ERROR: enter Update\n”);// Process input
UINT32 nButtons;
UINT32 nPressedButtons;
FrmGetInput( &m_Input, &nButtons, &nPressedButtons ); //可以通过FrmGetInput函数来获取输入事件。// Toggle user interface0
if( nPressedButtons & INPUT_KEY_0 )
{
m_UserInterface.AdvanceState();
}return;
} -
渲染模块:
此处主要为Render()函数实现,只需调用UI.Render()即可实现,详细实现细节在前面对框架介绍中 大量提及。 -
对shader进行销毁(Destory())
shader为着色器部分,此处主要使用的为OpenGLES中的内容,可以在外面对其进行初始化,然后 在上面的原始数据初始化模块里面被调用,详细实现方法和所应用到的知识体系可以在网上自行查找 OpenGL教程进行学习。以上便为Adreno SDK Framework编程主要流程。
三、SnapdragonProfiler
Snapdragon Profiler 是高通为开发者提供的众多的系统分析工具之一,该工具显示你的应用程序如何利用基于骁龙处理器的商业设备的软硬件系统。使用Snapdragon Profiler ,你可以得到你的应用程序的瓶颈和可以优化的点。除了性能之外, 这个工具还可以明确显示使用的电量、thermal 和网络数据, 这个工具支持三种不同的模式, Realtime、Trace和 Capture 以及Snapshot Capture, 它给予你一个健壮的分析帮住你优化你的程序的性能和功耗。
Snapdragon Profiler在此处主要用来分析CPU、GPU、DSP相关的性能及功耗。
Snapdragon Profiler安装配置:
根据上面链接下载其压缩文件并解压,然后下载Mono:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo “deb http://download.mono-project.com/repo/debian wheezy main” | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install mono-complete
或者可以到Mono官网自行下载,此处存在依赖问题不太好解决。
下载好后,进入Snapdragon Profiler解压后第一级目录,执行:./run_sdp.sh,即可启动。之后点击StartPage栏中的Connect a Device,弹出Connect即成功,接下来便可按照教程对应用进行分析。Snapdragon Profiler主要可以实时的来监测系统各部分的运行情况,在程序开发中是一个十分有利的工具。