自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 android开发之自定义AutoCompleteTextView

AutoCompleteTextView,很多人都用过,有些情况下使用Google提供的ArrayAdapter作为适配器就可以完成需求,但是在实际开发中,我们经常需要开发自定义适配器来完成开发工作。今天就来看看怎么自定义这样一个AutoCompleteTextView。 假设我们有一个Book类,Book有四个属性,id,name,author,price,pinyin,我希望在AutoComp

2015-09-24 16:54:08 5955 13

原创 怎么在我们的App中集成条码扫描功能?

现在很多App都有条码扫描功能,有的手机比如某米在照相机中集成了条码扫描功能,但是还有一部分手机没有这样的集成,比如韩国某星,需要自己下载一个条码扫描App。今天我们就来看看怎么在自己的App中集成一个条码扫描的功能。本文源码下载地址http://download.csdn.net/detail/u012702547/9101419先来看张效果图: 自己开发一个条码扫描显然是非常不现实的,我们可以

2015-09-12 18:34:12 3917 4

原创 android开发之记录ListView滚动位置

这个问题本身不难,但是由于项目中的需求太过于复杂,结果导致这个问题变得不是那么容易实现。在网上一搜,结果如下: 我不知道是who copy who?反正介绍的所谓的三种方法,第一种都是无法运行的,很明显的bug,第二三种方法都是入门级知识,这几位大哥写博客自己都不先运行一下吗?唉,不吐槽了,说说我的解决方案吧:在需要记录滚动位置的地方执行下面的操作:int scrollPos = refreshL

2015-09-06 17:35:26 3564 2

原创 NDK开发之获得域和方法描述符

在NDK开发之调用方法和NDK开发之访问域两篇博客中,我们在获得域ID和方法ID时都需要一个叫做描述符的参数,那么在实际开发中我们怎么知道我们要调用的域或者方法的描述符呢?一个简单的方法就是使用Java提供的javap命令JDK提供的命令行方式下的Java类文件反汇编程序称为javap,该工具可以从编译的文件中解压缩域和方法的描述符。使用方法: 在cmd命令行,首先进入到当前工程的主目录:java

2015-09-05 14:17:49 1710

原创 NDK开发之调用方法

与NDK开发之访问域中介绍的一样,Java中的方法也是分为两类:实例方法和静态方法。JNI提供了访问两类方法的函数,下面我们一起来看看怎么在C中访问Java中的方法。 我们的MainActivity中有两个方法,分别是: private String instanceMethod(){ return "Instance Method"; } private s

2015-09-05 13:50:08 1977

原创 NDK开发之访问域

Java有两类域,实例域和静态域。类的每个实例都有自己的实例域副本,而一个类的所有实例共享一个静态域(Java SE基础)。JNI提供了相应的函数来访问这两类域,总体步骤是这样的:1.通过对象引用获得类 2.通过类获得域ID 3.通过域ID获取域下面我们按步骤一步一步来: 我们的Java类中有两个域,一个静态域,一个实例域: private static String staticFil

2015-09-05 12:14:47 1856

原创 NDK开发之日志打印

要在NDK中打印日志,只需要以下三步:一、在Android.mk中添加以下内容:LOCAL_LDLIBS := -lm -llog注意,这行代码要添加在include $(CLEAR_VARS)之后,否则没有效果。二、引用头文件#include <android/log.h>三、定义变量//定义TAG之后,我们可以在LogCat通过TAG过滤出NDK打印的日志#define TAG "JNITES

2015-09-05 10:24:29 6937

原创 NDK开发之数组操作

JNI把Java数组当作引用类型来处理,JNI提供了必要的函数来访问和处理Java数组。下面一个一个来看。1.创建数组 我们可以使用NewArray函数在原生代码中创建数组实例,其中可以是Int、Char、和Boolean等,例如NewIntArray,使用这些函数时应该以参数的形式给出数组的大小。看下面一段代码:先定义一个jintArray数组,然后定义一个jint数组,将jint数组的内容提交

2015-09-04 21:02:23 3351 1

原创 NDK开发之字符串操作

在JNI中,Java字符串被当作一个引用来处理。这些引用类型并不像原生C字符串一样可以直接使用,JNI提供了Java字符串与C字符串之间转换的必要函数,因为Java字符串对象是不可变的(如果对这里有异议,请复习Java SE),因此JNI不提供任何修改现有的Java字符串内容的函数。JNI支持两种编码格式的字符串,分别是Unicode和UTF-8。好了,废话说完了,下面按部就班来。一、创建字符串我们

2015-09-04 15:13:01 1941

原创 NDK开发之JNIEnv参数详解

即使我们Java层的函数没有参数,原生方法还是自带了两个参数,其中第一个参数就是JNIEnv。 如下:native方法: public native String stringFromC(); public native String stringFromCpp();原生方法:jstring Java_com_example_jni_MainActivity_s

2015-09-04 13:07:06 4016

原创 NDK开发之ndk-build命令详解

毫无疑问,通过执行ndk-build脚本启动android ndk构建系统。 默认情况下,ndk-build脚本在工程的主目录中执行,如: 我们可以用使用-C参数改变上述行为,-C指定工程的目录,这样我们就可以在任何目录执行ndk-build脚本了。 如果源文件没有被修改,那么android ndk构建系统不会重新构建目标,这时我们可以使用参数-B来强制重新构建所有源代码。 如果想要清理生成

2015-09-03 19:46:58 17251 1

原创 NDK开发之Application.mk文件详解

做过NDK开发的同学应该都知道有个Application.mk文件,这是android NDK构建系统使用的一个可选构建文件。它的目的是描述应用程序需要哪些模块,也定义了所有模块的一些通用变量。主要有以下几个变量。APP_MODULES,默认情况下,ndk会构建在android.xk文件中声明的所有模块。但是这个变量可是覆盖上述行为。 假如我们的android.mk文件是这样的:LOCAL_PAT

2015-09-03 13:32:18 3703 1

提示
确定要删除当前文章?
取消 删除