
android
文章平均质量分 69
老程android研究
这个作者很懒,什么都没留下…
展开
-
电子词典开发几个知识点
1、先把资源文件里的数据库文件拷贝到外部存储目录下,并打开数据库2、单词输入框用自动提示文本输入控件AutoCompleteTextView,并给该控件添加文本变化监听器.3、当单词输入框的文本变化后,调用监听器函数afterTextChanged,在该函数里到数据里查询匹配的所有项。4、设置单词输入框的适配器,并把匹配的内容显示出来。5、点击查询,则根据单词输入框的单词,到数据库原创 2013-09-18 11:32:10 · 1413 阅读 · 0 评论 -
android视图类view及代码创建视图元件
视图类层次结构图解释一、viewgroup:视图集合或视图容器 想想什么可作视图容器,布局是也,所以布局类都是它的子类。 每个Activity仅有一个View的成员,一个activity要有很多视图元件的话,必须有一个视图容器对象。也就是说它必须有布局类对象。activity的视图一般通过布局文件来实现,但也可以通过代码来实现,代码实现的方法如下:原创 2013-05-17 09:27:12 · 1180 阅读 · 0 评论 -
android环境搭建之旅--记录我的android环境二次搭建
由于eclipse的android相关的插件升级的缘故,androdi环境崩溃啦,超郁闷!!!!被逼无奈二次搭建。开始吧:一、android ADT安装:1、jdk就不用说了,这个环境本来就有,而且所有的开发都需要这个。2、拷贝一个新的eclipse过来,我还用原来的版本eclipse-jee-indigo-win32,一个干净的eclipse3、安装android开发工具ADT:原创 2013-04-12 10:38:56 · 1182 阅读 · 0 评论 -
android源码环境下动态链接库so的隐式调用
一、先在android源码目录下的development目录下新建文件夹test123在该目录中新建3个文件:testhw.c、max.c Android.mk库源文件max.c内容如下:int max(int x,int y){ return x>y?x:y;}主程序文件testhw.c内容如下:#includeextern max(int,int);/原创 2013-04-09 09:19:30 · 1600 阅读 · 0 评论 -
android 服务(service)开发
一、通过startService方式启动的服务:(后台处理工作),只能通过intent传递参数,但不能与Activity交互。服务不能自己启动,需要通过其他的应用程序调用才能启动。启动服务的应用,需要的处理:1、注册服务: //LocalService:服务的类名2、启动服务:startService(new Intent(MainActivity.this,LocalServic原创 2013-03-29 11:49:05 · 1044 阅读 · 0 评论 -
交叉编译工具链-及arm-linux-androideabi-gcc编译方法
一、编译器: 就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)原创 2013-03-28 16:45:19 · 5710 阅读 · 0 评论 -
解决Android NDK: WARNING: APP_PLATFORM android-14 is larger than
解决Android NDK: WARNING: APP_PLATFORM问题:Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml其实是NDK 平台版本同开发版本不一致造成的。android-14应该对应android 4原创 2013-03-20 10:32:13 · 4341 阅读 · 1 评论 -
android NDK开发及调用标准linux动态库.so文件
预备知识及环境搭建1、NDK(native development Kit)原生开发工具包,用来快速开发C、C++动态库,并能自动将so文件和java应用一起打包成apk.对应:jni层c++开发2、Cygwin:是windows平台上模拟Linux运行环境的工具,即window平台上的linux环境工具,so文件需要在linux平台上编译运行。对应:arm linux平台3、CDT:原创 2013-03-19 10:12:14 · 5917 阅读 · 4 评论 -
Eclipse+Axis2+android构建WebService实战总结
Eclipse+Axis2构建WebService实战总结 什么是webservice?企业提供特定的服务service,其他用户通过internet即web访问这些服务。换句话说,WebService是两个计算机之间通讯(交谈)的技术,网络中一台计算机想要调用另一台计算机的方法时,此时可以需要WebService。很火的SOA、云计算在技术层面上都是WebService用程序员的观点原创 2013-03-11 16:12:13 · 4988 阅读 · 2 评论 -
结合程序理解activity的生命周期
首先看看android developers 网上的activity的生命周期图:Activity主要的三种状态: Running(运行):在屏幕前台(位于当前任务堆栈的顶部) Paused(暂停):失去焦点但仍然对用户可见(覆盖Activity可能是透明或未完全遮挡) Stopped(停止):完全被另一个Activity覆盖原创 2013-05-17 10:40:10 · 627 阅读 · 0 评论 -
RSS新闻阅读器—相关android技术知识点
一、Handler消息处理器:android.os.Handler用来发送和接收处理消息,一般用来处理子线程发来的消息。当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发,比如说,你要是点击一个Button,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如:联网读取数据,或者读取本原创 2013-08-16 15:51:45 · 1542 阅读 · 0 评论 -
SQLite数据库开发—3个类搞定android数据库开发
一、几个关键类1、SQLiteDatabase:android.database.sqlite.SQLiteDatebase:数据库类,用来操作数据库。2、SQLiteOpenHelper:android.database.sqlite.SQLiteOpenHelper:数据库帮助类,用来创建数据库、及数据库表、获取数据库对象。3、Cursor:android.database.Cur原创 2013-08-18 12:23:46 · 1506 阅读 · 0 评论 -
计算器开发相关知识
一、计算器开发有两个关键部分:1、界面开发2、计算算法二、界面开发:1、表格布局TableLayout:TableLayout,表格布局采用行列形式管理UI组件,TableLayout不需要明确地声明有多少行和列,而是通过添加TableRow、其它组件来控制表格的行数、列数。每次向TableLayout添加一个TableRow,就是在向表格添加一行,TableRow也是原创 2013-09-17 10:24:36 · 849 阅读 · 0 评论 -
游戏开发-SurfaceView类使用详解
一、实现游戏框架SurfaceViewpublic class MySurfaceView extends SurfaceView implements Callback, Runnable { private SurfaceHolder surfaceholder; //surface控制器 private Thread thread; //Run原创 2013-09-12 10:40:12 · 1101 阅读 · 0 评论 -
SharedPreferences-共享参数实现理解
一、概述SharedPreferences类似于Windows程序中常用的ini文件,以Key-Value的形式来保存应用程序的属性设置信息(区分数据类型)。比如,可以用来保存用户上一次的登录信息;可以保存媒体播放程序的音量设置以及上次播放位置等。二、数据以XML文件的方式,保存在data/data/pacakge name/shared_prefs/目录下,注意:只有保存过一次数据,sh原创 2013-09-06 09:47:04 · 1396 阅读 · 0 评论 -
android游戏开发原理及关键技术
游戏开发最重要的是游戏逻辑和动画。包括:背景图片控制,动作动画控制,音效控制1、场景背景图片控制2、动作动画控制:通过图片来实现动画。3、音效控制:音频文件。4、游戏逻辑。原创 2013-09-03 16:44:39 · 2053 阅读 · 0 评论 -
SAX与DOM的比较
SAX:simple api for XML:通读文档,设置文档的事件处理器,在处理器中解析文件,不需要在内存中保存整个文档,占用资源小。DOM:Document object model:全部读入内存,根据树壮结构解析。资源占用大。DOM解析器是通过将XML文档解析成树状模型并将其放入内存来完成解析工作的,而后对文档的操作都是在这个树状模型上完成的。这个在内存中的文档树将是文档实际大小的原创 2013-09-03 16:02:15 · 730 阅读 · 0 评论 -
MySQL汉字查询、外部jar包版本问题、模拟器版本同开发版本等问题
java汉字查询MySQL查询不了的问题解决办法:修改mysql的配置文件my.ini,修改两个地方:[mysqld]下:字符集更改为:default-character-set=utf8;[mysqld]下字符集更改为:default-character-set=utf8原创 2013-08-20 11:07:15 · 838 阅读 · 0 评论 -
eclipse Logcat日志不显示解决办法
windows->Preferences->android->Logcat->显示日志优先级设为VERBOSE(冗长的,啰嗦的)原创 2013-08-19 10:25:26 · 1773 阅读 · 0 评论 -
LayoutInflater动态加载布局文件及视图适配器BaseAdapter
一、android.view.LayoutInflater:布局膨胀器、布局加载器。对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入,LayoutInflater作用是将layout的xml布局文件实例化为View类对象。实现:1、获取布局加载器:LayoutInflater nflater = LayoutInflater.from(context);/原创 2013-08-18 20:55:46 · 2772 阅读 · 0 评论 -
Binder机制之Server端—MediaPlayerService::instantiate()
MediaPlayerService::instantiate函数把MediaPlayerService添加到Service Manger中去了。这个函数定义在frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp文件中:void MediaPlayerService::instantiate() {原创 2013-03-01 16:26:22 · 1428 阅读 · 0 评论 -
Binder机制之Server端—defaultServiceManager()
分析这句代码:spdefaultServiceManager()这句代码的最终目的是获取“应用程序中的0号引用”,即服务中的服务管理器的引用,即服务管理器接口,用来同服务管理器通信。defaultServiceManager位置在framework\base\libs\binder\IServiceManager.cpp中,代码如下:sp defaultServiceManager原创 2013-03-01 16:12:19 · 1134 阅读 · 0 评论 -
android内核字符驱动设备实战之----------运行时库层jni动态库编程(应该是应用框架层)
一、预备知识及说明: 1、硬件抽象层的设备驱动动态库模块是标准C语言编写的,所以应用层的java程序不能直接调用,所以需要添加符合java规范的jni C++程序动态库。 2、android系统的java程序要调用jni中的接口方法,必须有一个类要同其对应 3、jni动态库模块在应用框架层添加,对jni服务提供统一的jni动态库服务 4、应用框架层jni服务源代码放原创 2013-01-09 17:07:44 · 993 阅读 · 0 评论 -
最全的Android源码目录结构详解
android平台四层架构对应源代码中的目录:第一层:应用程序层(applications)对应根目录下packages/apps第二层:应用程序框架层(application framework)对应根目录下的frameworks第三层:运行库层包括运行库(libraries)和android运行时环境(android runtime) android运行时环境:原创 2013-01-09 16:26:31 · 5289 阅读 · 0 评论 -
android内核字符驱动设备实战之----------硬件抽象层模块编程篇
一、 预备知识及说明:1、硬件抽象层模块向上层提供接口,以便用户空间的程序通过该模块提供的接口访问内核空间的驱动程序。2、硬件抽象层模块是动态链接库文件(.so),它不属于内核层的,它是属于android系统Linux内核层的上层,因此它的源文件不能放在goldfish里。3、硬件抽象层模块的头文件源代码放在 /android/hardware/libhardware/include/原创 2013-01-08 10:18:33 · 919 阅读 · 0 评论 -
android内核字符驱动设备实战之----------内置C语言测试程序篇
一、测试之前,确保上篇的驱动程序已经安装成功,且在模拟器的/dev目录下,有此设备的设备文件,即有/dev/testdev设备文件二、进入到Android源代码工程的external目录,创建test目录: ~/Android$ cd external ~/Android/external$ mkdir test三. 在hello目录中新建test.c文件:原创 2013-01-07 10:40:47 · 762 阅读 · 0 评论 -
android内核字符驱动设备实战之----------设备驱动程序篇
android内核字符驱动设备实战之设备驱动程序篇一. 进入到kernel/goldfish/drivers目录,新建testdev目录: ~/Android$ cd kernel/goldfish/drivers ~/Android/kernel/goldfish/drivers$ mkdir testdev二. 在hello目录中增加testdev.h原创 2013-01-07 09:57:24 · 945 阅读 · 0 评论 -
为Android内核添加新驱动,并添加到menuconfig菜单【实践简记】
为Android内核添加新驱动,并提供menuconfig选项为Android的Linux内核2.6.25添加驱动。1. 在drives目录下添加hello目录,内含hello.c Kconfig Makefilehello.c内容:#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_i转载 2013-01-06 15:47:22 · 590 阅读 · 0 评论 -
android 内核编译--官网指南翻译
Building Kernels编译内核If you are only interested in the kernel, you may use this guide to download and build the appropriate kernel.如果你只对内核感兴趣,你可以用这个指南下载和编译适合的内核The following instructions assu翻译 2013-01-05 00:03:43 · 891 阅读 · 0 评论 -
Linux字符设备驱动初探
一、设备驱动之数据结构: 1、dev_t :设备编号,包含主设备号、次设备号。dev_t是一个32位的数,12位表示主设备号,20为表示次设备号(1)主设备号 = MAJOR(dev_t dev)(2)次设备号 = MINOR(dev_t dev)(3)设备编号 = MKDEV(int major,int minor) 2、file_operations:设备驱动向原创 2013-01-04 22:48:01 · 786 阅读 · 0 评论 -
Android JNI 使用的数据结构JNINativeMethod详解
Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数。其中很重要的区别是Andorid使用了一种Java 和 C 函数的映射表数组,并在其中描述了函数的参数和返回值。这个数组的类型是JNINativeMethod,定义如下:typedef struct {const char* name;const char* signature;void* f转载 2013-01-10 14:30:50 · 496 阅读 · 0 评论 -
android内核字符驱动设备实战之----------应用框架层aidl服务编程篇
总结:AIDL服务建立过程:1、定义AIDL接口。2、根据接口,通过编译器内部规则,自动编译生成内部静态抽象类ITestService.Stub,这个类继承了Binder类,并实现ITestService接口。3、创建一个继承这个ITestService.Stub类的具体类TestService4、通过系统服务(SystemServer)的服务管理器(ServiceManage原创 2013-01-10 18:40:51 · 965 阅读 · 0 评论 -
android内核字符驱动设备实战之----------应用层测试程序篇
一、通过eclipse开发工具开发具有用户界面的测试程序。工程名称TestDev主程序源代码MainActivity.java如下:package com.example.testdev;import android.os.Bundle;import android.os.RemoteException;import android.app.Activity;impor原创 2013-01-14 12:30:14 · 551 阅读 · 0 评论 -
Binder机制之Server端—ProcessState::self()
MediaPlayerService的代码位于frameworks/base/media/mediaserver/main_mediaserver.cpp文件中:只关心下面的5行代码, 下面一一对这个5行代码分析int main(int argc, char** argv) { sp proc(ProcessState::self()); sp sm = def原创 2013-02-28 09:32:09 · 7241 阅读 · 1 评论 -
Binder机制之Server端—预备知识
以MediaPlayerService为例研究server端MediaPlayerService类图: 1、RefBase:所有类的基类,相当于C++的CObject,该类可以通过引用计数的方式类控制对象的声明周期。 2、IBinder:binder接口的基类,接口定义了进程间交互的协议,通过transact方法向远端的IBinder对象发出调用,远端对象通过Binder.原创 2013-02-27 16:33:10 · 807 阅读 · 0 评论 -
Binder通信流程分析
一、Binder通信示例图client和服务server通信必须要三个过程:1、server之所以成为服务,必须向服务管理器SMgr注册2、client想同server通信,必须先向服务管理器SMgr获取服务的引用号。3、client发送数据包binder_transaction_data同server开始通讯二、服务server向服务管理器SMgr注册自己1、服务拥有原创 2013-02-19 16:47:36 · 1034 阅读 · 0 评论 -
Binder设计思想及架构
一、引言:为什么要采用Binder通信基于Client-Server的通信方式广泛应用于从互联网和数据库访问到嵌入式手持设备内部通信等各个领域。智能手机平台特别是Android 系统中,为了向应用开发者提供丰富多样的功能,这种通信方式更是无处不在,诸如媒体播放,视音频频捕获,到各种让手机更智能的传感器(加速度,方位,温度,光亮度等)都由不同的Server负责管理,应用程序只需做为Client与原创 2013-02-18 10:11:29 · 966 阅读 · 0 评论 -
Binder机制之Service Manager(大内总管)
一、Service Manager是android系统核心程序,在系统启动后,自动运行,在系统的初始化配置文件init.rc中配置该文件在out/target/product/generic/root,文件中有如下内容:service servicemanager /system/bin/servicemanager class core user system原创 2013-01-30 09:23:44 · 1158 阅读 · 1 评论 -
一个进程内的activity通信实现
通过三步来实现一个进程内的activity通信:1、创建关联两个activity的IntentIntent intent = new Intent(MainActivity.this,OtherActivity.this);2、创建要传递的数据Bundle,并给Intent附加上这些数据//Bundle类用作携带数据Bundle bundle = new Bundle();原创 2013-01-28 16:13:07 · 489 阅读 · 0 评论 -
Logger日志系统实现流程研究
综述:日志系统的实现流程1、应用层应用程序:调用应用程序框架层的java接口,实际是java类的静态函数,android.util.Log(如Log.i());----------应用程序2、应用框架层java接口:Log的静态方法如(v()、i()、e()),调用本层对应的JNI方法:如:println_native ------------java类Log jar包:system/原创 2013-01-25 11:43:19 · 760 阅读 · 0 评论