ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:27.47KB ,
资源ID:8317796      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8317796.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(android native activity.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

android native activity.docx

1、android native activity/ android-ndk-r5b/samples/native-activity一、native-activity/default.properties 文件内容:# This file is automatically generated by Android Tools.# 本文件是由 Android 工具自动产生的。# Do not modify this file - YOUR CHANGES WILL BE ERASED!# 不要修改本文件 - 你的改变将是被擦除掉!# This file must be checked in Vers

2、ion Control Systems.# 本文件一定由版本控制系统检查。# To customize properties used by the Ant build system use,# build.properties,# and override values to adapt the script to your project structure.# Ant 构建系统使用自定义内容 build.properties ,然后替代其值为你的工程结构来改写脚本。# Project target.# 工程目标。# 判断 APP_PLATFORM 是否在 Application.mk 文

3、件中定义,如果没有定义,就使用这个默认的定义,# 如果此文件也找不到,则按照 android-3 (Android 1.5)来定义。target=android-7二、native-activity/AndroidManifest.xml 文件内容:三、native-activity/res/values/strings.xml 文件内容:NativeActivity四、native-activity/jni/Application.mk 文件内容:# 使用 android-ndk-r5b/platforms/android-9/arch-arm/usr 目录下的头文件与库文件APP_PLAT

4、FORM := android-9五、native-activity/jni/Android.mk 文件内容:# Copyright (C) 2010 The Android Open Source Project# 版权所有(C)2010 Android 开源工程# Licensed under the Apache License, Version 2.0 (the License);# 根据 2.0 版本 Apache 许可证授权# you may not use this file except in compliance with the License.# 根据本许可证,你可以不使

5、用此文件。# You may obtain a copy of the License at# 你可以获得许可证的副本在# http:/www.apache.org/licenses/LICENSE-2.0# Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an AS IS BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express

6、or implied.# 除非因适用法律需要或书面同意,# 根据许可证分发的软件是基于按原样原则提供,无任何明示的或暗示的保证或条件。# See the License for the specific language governing permissions and# limitations under the License.# 详见根据许可证许可下,特定语言的管辖权限和限制。# 用于返回当前目录的路径LOCAL_PATH := $(call my-dir)# CLEAR_VARS 变量是由生成系统已提供的,# 并且指出一个特殊的 GNU Makefile 文件将为你清除除了 LOCA

7、L_PATH 以外的许多的 LOCAL_XXX 变量,# (例如:LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES,等等.)# 这是必须的,因为全部的生成控制文件是在一个单独的 GNU Make 执行环境中被分析的,在那里所有的变量是全局的。include $(CLEAR_VARS)# LOCAL_MODULE 变量必须是已定义的,用来标识你的 Android.mk 文件中描述的每个模块。# 模块名字必须是唯一,并且不能包含任何的空格。# 注意生成系统将自动添加适当的前缀和后缀到相应的产生文件。# 换句话说,一个共享库模块命名为 nat

8、ive-activity 将产生 libnative-activity.so 。LOCAL_MODULE := native-activity# LOCAL_SRC_FILES 变量必须包含将生成且汇编成一个模块的 C 和/或 C+ 源文件的列表。# 注意你将不列出头文件和包含文件在这里,因为生成系统将自动地为你估算依赖;# 列出的源文件将直接递给编译器。LOCAL_SRC_FILES := main.c# 使用在生成你的模块时的额外的链接器标志列表。# 对于用 -l 前缀传递特定的系统库名是有用的。# liblog.so 提供 Android 记录日志 API# libandroid.so

9、提供 Android 功能访问 API# libEGL.so 提供 EGL API# libGLESv1_CM.so 提供 OpenGL ES API# 注:# OpenGL ES (OpenGL for Embedded Systems,以下简称 OpenGL)# OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。# 该 API 由 Khronos 集团定义推广,# Khronos 是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。# EGL 是 OpenGL ES 和 底层本地平台视窗系统 之间的接口,为 OpenGL ES 提供平台独

10、立性而设计。# 它被用于处理图形管理、表面/缓冲捆绑、渲染同步,# 以及支援使用其他 Khronos API 进行的高效、加速、混合模式 2D 和 3D 渲染。LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM# 将链接到本模块的静态库模块列表(用 BUILD_STATIC_LIBRARY 生成的)。# 这仅在共享库模块中有意义。LOCAL_STATIC_LIBRARIES := android_native_app_glue# BUILD_SHARED_LIBRARY 是一个已由生成系统提供的变量,# 表明一个 GNU Makefile 脚本是

11、负责收集你定义的从最近的 include $(CLEAR_VARS)# 到决定去生成之间的全部 LOCAL_XXX 变量的信息,然后正确地生成共享库。# 注意你必须在包含这个文件之前最近位置有 LOCAL_MODULE 或 LOCAL_SRC_FILES 变量的定义。include $(BUILD_SHARED_LIBRARY)# $(call macro-name, param1, .)# call 是一个内置于 make 的函数,# call 会扩展它的第一个参数并把其余参数依次替换到出现 $1、$2、.的地方。# call 的第一个参数可以是任何宏或变量的名称。# 允许你通过名字查找且包

12、含其它模块的 Android.mk 文件。# 这将在你的 NDK_MODULE_PATH 环境变量提到的目录列表中查找模块标记的名字,# 并自动地为你包含它的 Android.mk 文件。# 为了方便起见,$NDK/sources 是被 NDK 生成系统附加到你的 NDK_MODULE_PATH 变量值定义中。$(call import-module,android/native_app_glue)六、native-activity/jni/main.c 文件内容:/* Copyright (C) 2010 The Android Open Source Project* 版权所有(C)201

13、0 Android 开源工程* Licensed under the Apache License, Version 2.0 (the License);* 根据 2.0 版本 Apache 许可证授权* you may not use this file except in compliance with the License.* 根据本许可证,你可以不使用此文件。* You may obtain a copy of the License at* 你可以获得许可证的副本在* http:/www.apache.org/licenses/LICENSE-2.0* Unless require

14、d by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* 除非因适用法律需要或书面同意,* 根据许可证分发的软件是基于按原样原则提供,无任何明示的或暗示的保证或条件。* See the License for the specific language governin

15、g permissions and* limitations under the License.* 根据许可证分发的软件是基于按原样原则提供,无任何明示的或暗示的保证或条件。*/BEGIN_INCLUDE(all)/* Java Native Interface */#include /* 错误报告机制 */#include /* EGL */#include /* OpenGL ES 1.x */#include /* 接收和处理传感器事件 */#include /* Android logging API */#include /* android-ndk-r5b/sources/and

16、roid/native_app_glue 静态库头文件 */#include #define LOGI(.) (void)_android_log_print( ANDROID_LOG_INFO, native-activity, _VA_ARGS_ )#define LOGW(.) (void)_android_log_print( ANDROID_LOG_WARN, native-activity, _VA_ARGS_ )/* Our saved state data.* 我们已保存的状态数据。*/struct saved_statefloat angle; /* RGB 中的绿色值 */

17、int32_t x; /* X 坐标 */int32_t y; /* Y 坐标 */;/* Shared state for our app.* 为我们的应用程序共享状态。*/struct engine/* android_native_app_glue.h 中定义的本地应用程序粘合剂模块用数据结构 */struct android_app* app;/* sensor.h 中定义的传感器管理器 */ASensorManager* sensorManager;/* 加速度传感器 */const ASensor* accelerometerSensor;/* 已与一个循环器关联起来的传感器事件队

18、列 */ASensorEventQueue* sensorEventQueue;/* 非零为可以绘制动画 */int animating;/* 显示器句柄 */EGLDisplay display;/* 系统窗口或 frame buffer 句柄 */EGLSurface surface;/* OpenGL ES 图形上下文 */EGLContext context;/* 系统窗口的宽度(像素) */int32_t width;/* 系统窗口的宽度(像素) */int32_t height;/* 我们已保存的状态数据 */struct saved_state state;/* Initiali

19、ze an EGL context for the current display.* 为当前显示器初始化一个 EGL 上下文。*/static intengine_init_display( struct engine* engine )/* initialize OpenGL ES and EGL* 初始化 OpenGL ES 和 EGL*/* Here specify the attributes of the desired configuration.* 在这里具体指定想要的配置的属性。* Below, we select an EGLConfig with at least 8 b

20、its per color* component compatible with on-screen windows.* 在下面,我们选择一个至少 8 位色的 EGLConfig 与屏幕上的窗口一致。* 注:通常以 ID, Value 依次存放,对于个别标识性的属性可以只有 ID 没有 Value 。*/const EGLintattribs = EGL_SURFACE_TYPE, EGL_WINDOW_BIT, /* 系统窗口类型 */EGL_BLUE_SIZE, 8, /* 蓝色位数 */EGL_GREEN_SIZE, 8, /* 绿色位数 */EGL_RED_SIZE, 8, /* 红色

21、位数 */EGL_NONE ;/* 系统窗口的宽度(像素) */EGLint w;/* 系统窗口的高度(像素) */EGLint h;/* 未使用的变量 */EGLint dummy;/* 像素格式ID - RGBA/RGBX/RGB565 */EGLint format;/* 系统中 Surface 的 EGL 配置 的总个数 */EGLint numConfigs;/* Surface 的 EGL 配置 */EGLConfig config;/* 系统窗口句柄 */EGLSurface surface;/* OpenGL ES 图形上下文 */EGLContext context;/* 1

22、.返回一个显示器连接 - 是一个关联系统物理屏幕的通用数据类型。 */EGLDisplay display = eglGetDisplay( EGL_DEFAULT_DISPLAY ); /* 得到系统默认的 */* 原型:EGLDisplay eglGetDisplay ( NativeDisplayType display );* display 参数是本地系统显示器类型,取值为本地显示器 ID 值。* 返回:如果系统中没有一个可用的本地显示器 ID 值与 display 参数匹配,* 函数将返回 EGL_NO_DISPLAY ,而没有任何 Error 状态被设置。*/* 2. EGL 在

23、使用前需要初始化,因此每个显示器句柄(EGLDisplay)在使用前都需要初始化。*/eglInitialize( display, /* 有效的显示器句柄 */0, /* 返回主版本号 - 不关心可设为 NULL 值或零(0) */0 ); /* 返回次版本号 - 不关心可设为 NULL 值或零(0) */* 原型:EGLBoolean eglInitialize( EGLDisplay dpy,* EGLint* major,* EGLint* minor );* EGLint 为 int 数据类型。* 返回:EGLBOOlean 取值:EGL_TRUE = 1, EGL_FALSE =

24、0 。*/* Here, the application chooses the configuration it desires.* 在这里,应用程序决定它要求的配置。* In this sample, we have a very simplified selection process,* where we pick the first EGLConfig that matches our criteria.* 在这个示例中,我们有一个非常精简的选择处理,* 我们选择第一个 EGLConfig 适应我们的标准。*/* 定义一个希望从系统获得的配置,它将返回一个最接近你的需求的配置 */e

25、glChooseConfig( display, /* 有效的显示器句柄 */attribs, /* 以 EGL_NONE 结束的参数数组 */&config, /* Surface 的 EGL 配置 */1, /* Surface 的 EGL 配置个数 */&numConfigs ); /* 系统中 Surface 的 EGL 配置 的总个数 */* 原型:EGLboolean eglChooseConfig( EGLDisplay dpy,* const EGLint* attr_list,* EGLConfig* config,* EGLint config_size,* EGLint* num_config );*/* EGL_NATIVE_VISUAL_ID is an attribute of the EGLConfig* that is guaranteed to be accepted by ANativeWindow_setBuffersGeometry().* EGL_NATIVE_VISUAL_ID 是一个 EGLConfig 的属性,* 保证被 ANativeWindow_setBuffersGeometry 函数认可。* As soon as we picked a EGLConfig,* we can safely reconfigure the A

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1