随笔分类 - android提高篇
摘要:最近在将一个小应用从eclipse开发迁移到android studio,程序中有native代码实现,在eclipse是靠Android.mk这么个mk文件来组织编译的,但到android studio上就不行了,因其是靠gradle组织,所以makefile里的配置要转换为build.gradl
阅读全文
摘要:编写一个可以与C代码交互的android工程需要如下步骤: 1、JAVA代码中写声明native 方法 2、 创建jni目录,编写c代码,方法名字要对应 3、编写Android.mk文件(交叉编译的规范) 4、Ndk编译生成动态库 5、Java代码load 动态库.调用native代码 具体实现如下
阅读全文
摘要:JNI(Java Native Interface,JAVA本地接口) 可以使Java代码和其他语言写的代码(如C/C++代码)进行交互。为什么要进行交互? 首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低,如下图所示。其次,Jav
阅读全文
摘要:参考文章: http://www.th7.cn/Program/Android/201509/550864.shtml http://www.open-open.com/lib/view/open1451917048573.html http://blog.csdn.NET/sodino/artic
阅读全文
摘要:Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。
阅读全文
摘要:做上一个项目的时候因为与C引擎交互频繁,有时候会突然莫名其妙的的整个应用程序直接挂掉。因为我是学Java 开始的,所以对主动释放内存没多大概念(GC直接帮忙回收),后查询原因才知道是因为JNI 有些对象内存未释放引起。下面介绍下相关的资源释放。 JNI 编程实现了 native code 和 Jav
阅读全文
摘要:接着上篇文章继续讲。主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输。 1、主要流程 1、 String 字符串传输 a) 上层定义一个native的方法,需要一个String 参数 ,返回一个String b) JNI对应上层的方法,打印出上层传输下来的String数据,并返回处
阅读全文
摘要:刚接触JNI 的 兄弟在看一些demo的时候 发现有类似与“([Ljava/lang/String;)V”的东西的时候肯定会很“蛋疼”,完全不懂这是啥东西,怎么来的,有啥用处? 今天就讲讲这个“蛋疼”的东西把,俗称 方法签名 直接来个Demo 把 : 观察下面四个方法对应的签名 public voi
阅读全文
摘要:之前的一些文章都有涉及到上层和中间层的数据传输,简单来说,也就是参数和返回值的使用。因为中间层要做的最多的也就是数据传输与转换,下面来介绍下这方面的知识。 数据传输可分为 基本数据类型传输 和 引用数据类型的传输 , 因为数组传输也比较特别(其实数组也是引用类型),所以这里也专门分出来讲讲。 1、主
阅读全文
摘要:随便谈谈为什么要Java调用C 吧: 我认为: 1、 有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所以我们没必要同样的功能又在java中实现一遍。例如我之前做的一个项目,公司C引擎已经很成熟了,所以直接在java中封装好接口,由C去实现。 2、 C的速度一般是java的
阅读全文
摘要:许多成熟的C引擎要移植到Android 平台上使用 , 一般都会 提供 一些接口, 让Android sdk 和 jdk 实现。 下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法。 1、主要流程 1、 新建一个测试类TestProvider.java a) 该类提供了2个方
阅读全文
摘要:经典老套流程,学编程语言东西,先学它最基础的数据类型,JNI也是如此。JNI 定义了一系列基本数据类型和引用数据类型与java想对应。 1、基本数据类型 下面一张表是描述了 Java 基本数据类型和JNI中基本数据类型的相对应关系已经占用空间大小。 随便观察就能发现,其实就基本数据类型而已,JNI基
阅读全文
摘要:Hello World作为所有编程语言的起始阶段,占据着无法改变的地位,所有中/英/法/德/美……版本的编程教材中,hello world总是作为第一个TEST记录于书本之中,所有的编程第一步就在于此了!经典之中的经典!hello world! 下面介绍下NDK开发的Hello World 1、An
阅读全文
摘要:程序都是调出来的。 下面我介绍下JNI层的log打印方法的使用,类似与Android sdk提供的log 1、Android 应用层 MainActivity.java 主要功能代码 a) 静态载入 So 库 b) 声明本地方法 c) 调用本地方法 代码附有注释如下: public class Ma
阅读全文
摘要:工欲善其事 必先利其器 , 下面介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建。 1、Android 开发环境搭建 Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。 1) 下载 JDK 2) 下载 Eclipse 3)
阅读全文
摘要:一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。 一个工程中的源
阅读全文
摘要:前些日子做了个Android项目, 引擎层 用C的, 准备写这个系类的文章,借此跟朋友来分享下我NDK开放的经验以及自己知识的总结和备忘。希望能给需要这方面资料的朋友提供一定的帮助。 主要涉及到: 环境的搭建 Android.mk 文件的 配置 HelloWorld NDK 打印信息 JNI 数据类
阅读全文
摘要:package com.ble.gsense.rbq.view; /** * Created by rbq on 2016/12/8. */ import java.util.Random; import java.util.concurrent.atomic.AtomicBoolean; import android.content.Context; import android.gra...
阅读全文
摘要:WebView控制调用相应的WEB页面进行展示。当碰到页面有下载链接的时候,点击上去是一点反应都没有的。原来是因为WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置WebView的DownloadListener,通过实现自己的DownloadListener来实现文件的下
阅读全文
摘要:摘要: 转载请注明出处:http://blog.csdn.net/allen315410/article/details/42914501 概述 今天这篇博客将记录一些关于DrawerLayout的基本用法,我想关于DrawerLayout的用法也许有不少不够了解,这也是比较正常的事情... 转载请
阅读全文

浙公网安备 33010602011771号