- 博客(69)
- 资源 (1)
- 问答 (4)
- 收藏
- 关注
翻译 位图
原文链接 https://developer.android.google.cn/ndk/reference/group___bitmap.html文件file bitmap.h数据结构struct AndroidBitmapInfo宏define ANDROID_BITMAP_RESULT_SUCCESS ANDROID_BITMAP_RESU...
2018-02-12 23:43:43
285
翻译 Asset Manager 资源
原文链接 https://developer.android.google.cn/ndk/reference/group___asset.html文件file asset_manager.h file asset_manager_jni.hasset_manager.h 类型定义符: AAssetManager AAsetDir AAsset枚举...
2018-02-12 23:24:28
901
翻译 NDK Reference
API参考NDK的API参考包括NDK针对Android提供的原生标头基本集的相应文档。这些标头及相关库可显示各种功能,不然只能通过Android框架访问这些功能。一下是其中的几项功能:使用硬件传感器。访问存储空间处理用户输入设置配置信息,如屏幕方向。 API参考提供有关NDK中附带的上述功能及其他功能的详细信息。...
2018-02-12 21:07:40
266
翻译 相应触摸事件
创建触摸监听器 为了去确保你的OpenGLES程序 相应触摸事件,你必须实现onTouchEvent()方法在GLSurfaceView类中。这个实例实现了下方显示如何监听MotionEvent.Action_MOVE事件并且将它们为形状转换一个角度。private final float TOUCH_SCALE_FACTOR = 180.0f / 320;private float ...
2018-02-10 21:37:51
239
翻译 旋转一个形状
用OpenGLES旋转一个绘制对象是相对简单的。在渲染器中,创建另一个旋转矩阵并且结合你的投影矩阵和相机视图转换矩阵。private float[] mRotationMatrix = new float[16];public void onDrawFrame(GL10 gl) { float[] scratch = new float[16]; ... // C...
2018-02-10 20:23:57
216
翻译 应用投影和相机视图
物理的视图模拟伴随绘制对象坐标的数学的转换: 投影:转换调整绘制对象的坐标基于GLSurfaceView宽和高。没有计算。由OpenGLES绘制的对象被视图黄口不平等的歪曲。一个投影转换一般不被计算,当OpenGL视图比例被建立或在onSurfaceChanged()方法改变的时候。 相机视图:这转换调整绘制对象的坐标基于虚拟相机位置。重要的注意到openGLES 没有定义一个真是的相机对象,...
2018-02-10 20:09:02
282
翻译 绘制形状
原文链接 https://developer.android.google.cn/training/graphics/opengl/draw.html 初始化形状在你绘制任何东西之前,你必须初始化并且加载你打算绘制的形状。除非在程序中你使用的形状结构在处理的过程中改变,你应该在你的渲染的渲染器的onSurfaceCreated()方法中初始化他们并有效的执行它。public ...
2018-02-10 17:41:10
182
翻译 定义形状
原文链接 https://developer.android.google.cn/training/graphics/opengl/shapes.html在opengles上下文中定义形状是创建高质量几何杰作的第一步。绘制opengles可以在不知到一些基础知识(OpenGLES希望你去定义的形式)的状态下定义图形。OpenGLES 允许你使用三维空间中的坐标定义绘制对象。因此,在...
2018-02-09 08:16:54
309
翻译 创建OpenGLES环境
为了在你的安卓程序中用OpenGLES绘图,你必须创建为他们创建视图容器。其中一个直接的方法是实现GLSurfaceView和GLSurfaceView.Renderer。GLSurfaceView是一个使用OpenGL画几个图形视图容器。GLSurfaceView.Renderer支配在视图中画什么。GLSurfaceView 是一种吸收OpenGLES图形到程序中的一种方法。对于全屏或近全...
2018-02-08 23:29:09
198
翻译 OpenGL ES(Java)
原文链接 : https://developer.android.google.cn/guide/topics/graphics/opengl.html在ES1.0API中 你可以申请投影矩阵和相机试图通过创建每一个矩阵然后添加他们到环境中。 1.投影矩阵: 使用设备屏幕创建投影矩阵为的是创建重新计算对象坐标,因此对象以正确的比例被画出来。下面的示例代码证明如何修改GLSurf
2018-02-07 09:23:40
767
转载 Android studio 如何创建创建第三方库生成自己的jar
原文链接:http://www.jianshu.com/p/a73202c3bedb 1.创建moulde (1)File — New Moudle File — New Moudle1.png (2)选择Android Library — NextFile — New Moudle2.png (3)填写Moudle名 — Finish。一个新的Moudle就完成啦。 填写M
2017-12-08 12:23:14
373
转载 使用SWIG自动生成JNI代码
介绍简化的包装器和接口生成器,SWIG是可以通过自动生成必要的JNI封装代码来简化上述过程的开发工具。为原生代码定义SWIG接口基于所定义的接口生成JNI代码将SWIG集成到Android构建过程中包装C/C++代码异常处理使用内存管理为原生代码中调用Java程序(待完成)
2017-12-08 12:14:31
503
转载 异常处理
异常处理是Java程序设计语言的重要功能,Jni中异常行为与Java中的有所不同。在Java中当抛出一个异常时,虚拟机停止执行代码块并进入调用栈反向检查能处理特定类型异常的异常处理程序代码块,这也叫作捕获异常。虚拟机清除异常并将控制权交给异常处理程序,相比之下JNI要求开发人员在异常发生后显式地实现异常处理流。1.捕获异常调用throwingMethod方法时,accessMethods原生方法需要
2017-11-30 23:34:07
168
转载 调用方法
与域一样,java中有两类方法:实例方法和静态方法。Jni提供访问两类方法的函数,含有一个静态方法和一个实例方法的Java类。public class JavaClass{ private String instanceMethod(){ return "Instance Method"; } private static String staticMetho
2017-11-30 22:41:58
409
转载 NIO操作
原生I/O在缓冲区、大规模网络和文件I/O及字符集支持方面的性能有所改进。JNI提供了在原生代码中使用NIO的函数。与数组操作相比,NIO缓冲区的数据传送性能较好,更适合在原生代码和java应用程序之间传送大量数据。1.创建直接字节缓冲区 原生代码可以创建java应用程序使用的直接字节缓冲区,该过程是以提供一个原生C字节组为基础。//基于给定C字节数组创建字节缓冲区unsigned char*
2017-11-30 21:56:56
233
转载 对引用数据类型的操作
引用类型以不透明的引用方式传递给原生代码,而不是以原生数据类型的形式呈现,因此引用类型不能直接使用和修改。JNI提供了与这些引用类型密切相关的一组API,这些API通过JNIEnv接口指针提供给原生函数。字符串数组NIO缓冲区字段方法1字符串操作字符串操作JNI把Java字符串当作引用类型来处理。这些引用类型并不像原生C字符串一样可以直接使用,JNI提供了Java字符串与C字符串之间相互
2017-11-30 20:45:25
248
转载 Jni实现与原生代码通信
(以Hello-jni为例) 1.原生方法声明 stringFromJNI方法声明中含有关键字native以通知java编译器,它用另一种语言提供该方法的具体实现。因为原生方法没有方法体,方法声明以语句终结符分号结尾。public native String stringFromJNI();尽管虚拟机知道该方法被原生实现,但是仍然不知道到哪去找方法的实现。2.加载共享库原生方法被编译成一
2017-11-30 16:09:47
194
转载 NDK reference-asset_manager.h
文章内容源自:https://developer.android.com/ndk/reference/asset__manager_8h.html类型定义符: - typedef struct AAssetmanager - AAssetManager通过创建AAsset对象提供对应用原始资源的访问。 (typedef struct AAsset AAsset
2017-11-30 15:36:02
373
转载 你必须知道的ABI和CPU关系
内容出自:http://blog.youkuaiyun.com/xx326664162/article/details/51167849 ABI和CPU的重要知识1、 大部分cpu都支持多于一种的ABI。 2、 当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。3、 注意:上表格中的空白部分,是我不知道它是否支持,极有可能是不支持解析: x86设备上,选择ABI的优先级lib
2017-11-28 21:32:16
3047
转载 使用现有库
本部分阐述如何使用您自己的以及 NDK 提供的现有库。首先介绍如何使用您自己的预构建库。 然后,介绍 NDK 提供的 C++ 帮助程序运行时,以及如何使用它们。 最后,提供有关 NDK 提供的其他库的信息,如 OpenGL ES 和 OpenSL ES,以及支持这些库所需的最低 Android API 级别。NDK 支持使用预构建库,静态库和共享库均受支持。针对此功能提供两个主要用例:向第三方 ND
2017-11-22 17:01:35
298
转载 ndk-build
ndk-build文件是Android NDK r4中引入的一个shell脚本。其用途是调用正确的NDK构建脚本。内部构建运行ndk-build脚本相当于运行一下命令:$GNUMAKE -f <ndk>/build/core/build-local.mk<parameters>$GNUMAKE 指向 GNU Make 3.81 或更新版本, 指向 NDK 安装目录。 您可以使用此信息从其他 she
2017-11-22 15:09:28
227
转载 Application.mk
本文档介绍Application.mk构建文件,此文件用于描述应用需要的原生模块。模块可以使静态库、共享库或可执行文件。概览Application.mk文件实际上是定义要便宜的多个变量的微小GNUMakefile片段。它通常位于 PROJECT/jni/下,其中PROJECT/jni/下,其中 PROJECT指向应用的项目目录。另一种方式是将其放在顶级$NDK/apps/ 目录的子目录。例如:$N
2017-11-22 14:54:26
232
转载 Android.mk
本页介绍用于将C和C++源文件粘合至Android NDK的Android.mk 构建文件的语法。概念Android.mk 文件位于项目 jni/ 目录的子目录中,用于向构建系统描述源文件和共享库。 它实际上是构建系统解析一次或多次的微小 GNU makefile 片段。 Android.mk 文件用于定义 Application.mk、构建系统和环境变量所未定义的项目范围设置。 它还可替换特定模块
2017-11-22 14:27:39
208
转载 NDK
NDK 能够在Android应用中使用原生代码对于想执行以下一项或多项的开发者特别有用:在平台之间移植其应用 重复使用现有库 主要组件:ndk-build:ndk-build脚本用于在NDK中心启动构建脚本。 自动探测您的开发系统和应用项目文件以确定要构建的内容。生成二进制文件将二进制文件复制到应用的项目路径。Java Android构建过程从Java来源生成.dex文件,这些文
2017-11-22 10:41:46
827
转载 Android的onCreateOptionsMenu()创建菜单Menu
转自博客 https://www.tuicool.com/articles/VrUBRf android一共有三种形式的菜单: 1.选项菜单(optinosMenu) 2.上下文菜单(ContextMenu) 3.子菜单(subMenu) 其中最常用的就是选项菜单(optionsMenu), 该菜单在点击 m
2017-11-09 18:09:10
211
原创 Android 事件处理概述
基于监听的事件处理。事件源事件监听器注册监听器在程序中实现事件监听器,通常有如下几种形式。内部类形式外部类形式Activity本身作为事件监听器类匿名内部类形式外部类作为事件监听器类Activity本身作为事件监听器类匿名内部类作为事件监听器类直接绑定到标签基于回掉的事件处理。 基于回掉的事件传播
2017-11-09 18:07:00
234
原创 对象与类 章节四
类 由类构造对象的过程称为创建类的实例。 封装:是与对象有关的重要概念。 从形式上看,封装不过是将数据和行为组合在一个包下,并对对象的使用者隐藏了数据的实现方式。数据的对象称为实例域,操纵数据的过程称为方法。 实现类封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互。 这意味着一个类可以全面地改变存储数据方式,只要仍旧
2017-10-23 23:45:44
206
原创 Java基础复习(章节三)
1.Java字符串不能修改,但变量能通过引用另外一个字符串完成修改。(变量引用到另外一个字符串之后,之前的字符串将由Java自动地进行垃圾回收。) 2.检测字符串是否相等 使用equal方法检测两个字符串是否相等。 String greeting = “Hello”; “Hello”.equal(greeting); 使用equalIsIgnoreCase方法检测两个字符串是否相等,而不
2017-10-23 20:01:31
291
原创 Android事件处理
Android提供了两套强大的事件处理机制:基于监听的事件处理。基于回掉的事件处理。监听的处理模型 事件监听的处理模型中、主要涉及以下三类对象。 Event Source:通常就是各种组件,例如按钮、窗口、菜单等。 Event:事件封装了界面组件上发生的特定事情。如果用户需要获得界面组件上所发生事件的相关信息,一般通过Event对象来取得。 Event Listener:负责监听事件源
2017-10-22 17:33:22
213
原创 第三章 处理机调度与死锁
3.1处理机调度的层次 3.11高级调度 1.作业与作业步 (1)作业 作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。 (2)作业步 一个典型的作业可分为三个作业步:1.“编译”作业步;2.“连接装配”作业步;3.“运行”作业步。 (3)作业流
2017-10-09 13:02:49
277
原创 第二章 进程管理
2.1进程的基本概念 2.1.1程序的顺序执行及其特征 1.程序的顺序执行 2.程序顺序执行时的特征。 (1)顺序性 (2)封闭性 (3)可在现性 2.1.2前趋图 2.1.3程序并发执行及其特征 1.程序并发执行 2.程序并发执行时的特征 (1)间断性 (2)失去封闭性 (3)不可再现性2.1.4进程的特征与状态 1.进程的特征 通常的程序是不
2017-10-08 17:39:55
261
原创 第三章 数据链路层
数据链路层属于计算机的底层。数据链路层使用的信道主要有以下两种类型: (1)点对点信道 这种信道使用一对一的点通信方式。 (2)广播信道 这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。 这一章,我们首先介绍点对点信道和在这种信道上最常用的点对点协议PPP。然后再用较大篇幅讨论共享信道的局域网和有关的
2017-10-08 15:55:46
904
原创 第二章 物理层
本章首先讨论物理层的基本概念。然后介绍有关数据通信的重要概念以及各种传输媒体的特点,但传输媒体本身并不属于物理层的范围。在讨论几种常用的信道复用技术后,我们对数字传输系统进行简单介绍。最后在讨论几种常见的宽带接入技术。 可以将物理层的主要任务描述为确定与传输媒体的接口有关的一些特性,即: (1)机械特性 指明在接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等等。
2017-10-07 01:46:01
481
原创 Android:Android应用和开发环境
之前零零散散的学习过Android的部件构成啊,布局,和零散的广播, contentProvider,以及Service等等。记忆零散且不连贯, 不能很好的掌握和运用。鉴此系统从头到捋顺Android应用开发涉及到的知识点,并记录下来,详细每节涉及到的内容及相关涉及留在以后逐步完善。1.5.4Android应用的清单文件:AndroidManifest.xml 它是整个Adnroid应用的全局描述
2017-10-04 23:49:46
294
原创 计算机网络:概述
计算机网络在信息时代的作用。 网络指“三网”,即电信网络,有限电视网络和计算机网络。电信网络的用户可得到电话,电报以及传真等服务。有线电视网络的用户能够观看各种电视节目。计算机网络则能够迅速传递数据文件,以及从网络上查找并获取各种有用的资料,包括图像和视频文件。 计算机网络向用户提供的最重要的功能有两个,即: (1)连通性 (2)共享1.2因特网概述 网络的网络 起源于美国的因特
2017-10-03 02:17:24
937
原创 关系数据库
关系模型的数据结构非常简单,单一的数据结构–关系。 在用户看来,关系模型中数据逻辑结构是一张扁平的二维表。 1.域 域是一组具有相同类型的值的集合。 2.笛卡尔积 笛卡尔积是域上面的一种集合运算。 给定一组域D1,D2,D3,….,Dn,这些域中可以是相同的域。D1,D2,…Dn的笛卡尔积为D1xD2x…xDn={(d1,d2,d3,…,dn)|di属于Di,i=1,2,3,…,n}
2017-09-27 02:36:57
539
原创 1.3数据库系统结构
从数据库管理角度看,数据库通常采用三级模式结构;这是数据库管理系统内部的系统结构。从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器/数据库服务器多层结构等。这是数据库系统外部的体系结构。1.3.1数据库系统模式的概念在数据模型中“型Type”和“值Value”的概念。 模式是数据库中全体数据的逻辑结构个特征的描述,他仅仅涉及到型的
2017-09-26 01:07:21
401
原创 数据库基础:关系模型
目前,数据库领域中最常用的数据模型有: - 层次模型 - 网状模型 - 关系模型 - 面向对象模型 - 对象关系模型 其中层次模型与网状模型统称为格式化模型。诸多数据模型中,关系模型是目前最重要的一种模型。下面来详述一下关系模型的数据结构。一、关系模型的数据结构关系模型与以往的模型不同,它是建立在严格的数学概念的基础上。没给个关系的数据结构是一张规范的二维表。现在以学生登记表为
2017-09-25 23:46:39
3104
1
转载 Java内存回收机制
文章转自:http://blog.youkuaiyun.com/qq_22854537/article/details/51520944 Java的内存泄漏:如果存在无用的内存没有被回收回来,那就是内存泄漏。 垃圾回收机制:垃圾回收机制主要完成下面两件事情: 1、跟踪并监控每个Java对象,当某个对象处于不可达状态时,回收该对象所占用的内存空间; 2、清理内存分配、回收过程中产生的内存碎片。 JVM的
2017-09-25 21:50:31
265
转载 C++命名规范
记忆一下C++的规范命名,内容源自 博文原文http://blog.youkuaiyun.com/u012333003/article/details/20282277 1.文件命名规则 文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc my_use_full_class.cc 定义类的文件名一般是成对出现的,
2017-09-18 01:13:59
554
按照教材中的bresenham算法敲写的代码
2016-12-25
android问题 LayoutInflater.from
2016-11-07
各位大虾 帮帮忙,刚刚学习android 程序上没有报错,logcat也没有信息
2016-10-10
关于从ftp上下载数据
2016-05-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人