摘要: 本文主内容:1、 Android NDK 安装2、 安装Cygwin与使用NDK编译3、 在Eclipse中集成C/C++开发环境CDT4、 安装Sequoyah插件5、 JNI编译环境配置本文建立在已经完成Android开发环境搭建的基础上。其基础环境至少需要包含以下内容:1、 JDK2、 Eclipse3、 Android SDK and ADT可以参考我之前的“Android开发环境搭建”。一、Android NDK安装与配置下载Android NDK。下载地址:http://developer.android.com/tools/sdk/ndk/index.html下载后解压缩到你的工 阅读全文
posted @ 2013-08-21 15:29 Navy_Wang 阅读(1226) 评论(0) 推荐(0) 编辑
摘要: JNI是Java调用Native机制,是Java语言自己的特性全称为Java Native Interface,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.Net可以调用C/C++的API,所以说JNI和Android没有关系,在PC上开发Java的应用,如果运行在Windows平台使用JNI是是经常的,比如说读写Windows的注册表。JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代 阅读全文
posted @ 2013-08-21 15:21 Navy_Wang 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 在Android上,应用程序的开发,大部分基于Java语言来实现。要使用c或是c++的程序或库,就需要使用NDK来实现。NDK是Native Development Kit的简称。它是一个工具集,集成了Android的交叉编译环境,并提供了一套比较方便的Makefile,可以帮助开发者快速开发C或是C++的动态库,并自动的将so和java程序打包成apk,在Android上运行。 好,闲话少说,我们以一个简单的实例,来讲解NDK的应用。 一开发环境的搭建 这一步虽然没什么技术含量,但是对于初学者,有一个很好的入门指导,还是很有帮助的。1.1 Android SDK的搭建 首先,要进行Andro 阅读全文
posted @ 2013-08-21 15:12 Navy_Wang 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 这篇文章http://byandby.iteye.com/blog/1026110我们介绍了android的本地服务:它只能由承载它的应用程序使用。现在我们将介绍如何构建可由其他进程通过 RPC 使用服务。与许多其他基于 RPC 的解决方案一样,在Android中,需要使用 IDL来定义将向客户端公开的接口。在Android中,这个 IDL 称为 AIDL。要构建远程服务,执行以下步骤。 (1)编写一个AIDL文件来向客户端定义接口。AIDL 文件使用 java语法,它的扩展名是点 .aidl 使用的包名称与Android项目所使用的包相同。 (2)将AIDL 文件添加到项目的任意包下。An. 阅读全文
posted @ 2013-08-21 15:07 Navy_Wang 阅读(249) 评论(0) 推荐(0) 编辑
摘要: AIDL的作用 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。 通过代码来实现这个数据传输过程是冗长乏味的,Android提供了AIDL工具来处理这项工作。 AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communica... 阅读全文
posted @ 2013-08-21 14:56 Navy_Wang 阅读(169) 评论(0) 推荐(0) 编辑
摘要: Android中JNI的使用方法 首先看一下Android平台的框架图: 可以看到Android上层的Application和ApplicationFramework都是使用Java编写,底层包括系统和使用众多的LIiraries都是C/C++编写的。 所以上层Java要调用底层的C/C++函数库必须通过Java的JNI来实现。下面将学习Android是如何通过Jni来实现Java对C/C++函数的调用。以HelloWorld程序为例:第一步:使用Java编写HelloWorld 的Android应用程序:package com.lucyfyr;import android.app... 阅读全文
posted @ 2013-08-21 14:40 Navy_Wang 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 我们在定义一个drawable的时候可以通过xml定义的drawable对象。它使得一个图片能在不同的状态下显示不同的图案,比如一个Button,它有pressed,focused,或者其它状态,通过使用state list drawable,你就可以为每种状态提供不同的图片。先看一个范例:XML file saved atres/drawable/button.xml:[java] view plaincopyprint?This layout XML applies the state list drawable to a Button:[java] view plaincopyprint 阅读全文
posted @ 2013-07-25 11:29 Navy_Wang 阅读(406) 评论(0) 推荐(0) 编辑
摘要: android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewGroup来处理Touch事件,还是子view来处理Touch事件呢?我只能很肯定的对你说不一 阅读全文
posted @ 2013-07-23 14:11 Navy_Wang 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 想设置listview中每行在点击、选中等不同状态下有不同的背景颜色,或者背景图片。这可以用Android的Selector来实现。它可以定义组件在不同状态下的显示方式。新建一个xml文件list_bg_selector.xml在drawable目录下[html] view plaincopyprint? 定义item时具体可以选择的条件有:[html] view plaincopyprint?android:state_pressed=["true"|"false"]//被点击android:state_focused=["true" 阅读全文
posted @ 2013-07-17 14:12 Navy_Wang 阅读(1010) 评论(0) 推荐(0) 编辑
摘要: 前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView。但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题。上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是无法计算的。 又搜索了一下,发现有StackOverflow上的牛人已经解决了这个问题,经过试验发现是可以解决问题的,它的思路就是在设置完ListView的Adapter后,根据ListVie 阅读全文
posted @ 2013-07-16 10:47 Navy_Wang 阅读(205) 评论(0) 推荐(0) 编辑