![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 71
慌慌丨张张
一个程序员、艺术家。
展开
-
在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序
在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val。进一步,还通过cat命令来直接访问/proc/hello和/转载 2013-07-18 12:02:53 · 673 阅读 · 0 评论 -
在Ubuntu上为Android系统编写Linux内核驱动程序
在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore。随着Android系统逐步扩大市场占有率,终转载 2013-07-18 12:02:08 · 709 阅读 · 0 评论 -
spinner ArrayAdapter
public class MainActivity extends Activity { /** Called when the activity is first created. */ //声明Spinner对象 private Spinner spinner = null; @Override public void onCreate(Bundle savedInstan原创 2011-12-15 13:52:43 · 2348 阅读 · 0 评论 -
content provider
1、简介1)Content Provider提供为存储和获取数据提供了统一的接口2)使用Content Provider可以在不同的应用程序之间共享数据3)Android为常见的一些数据提供了Content Provider(包括音频,视频,图片和通讯录等等)2、Content Provider使用表的形式来组织数据URI:统一资源标识符1)每一个Content Provi原创 2011-12-15 13:50:36 · 403 阅读 · 0 评论 -
Intent
Intent对象包含的信息:1)、componentname 要启动哪一个activity 2)、Action 指定另外一个activity要做什么3)、Data 向另外一个传送什么数据4)、Extras 键值对传送、1、最简单的用法 Intent intent = new Intent(); intent.setClass(Activity02.thi原创 2011-12-15 13:49:09 · 426 阅读 · 0 评论 -
在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务。我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问转载 2013-07-18 12:03:57 · 700 阅读 · 0 评论 -
在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行。今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件。因此,软件和硬件的关系,在一定程度上可以说,硬件是为软件服务的。硬件工程师研发出一款硬件设备,自然少了软件工程师为其编写驱动程序;而驱动程序的最终目的,是为了使得最上层的应用程序能够使用这些硬件提供的服务来为用户提供软件功转载 2013-07-18 12:04:32 · 689 阅读 · 0 评论 -
在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务
我们在Android系统增加硬件服务的目的是为了让应用层的APP能够通过Java接口来访问硬件服务。那么, APP如何通过Java接口来访问Application Frameworks层提供的硬件服务呢?在这一篇文章中,我们将在Android系统的应用层增加一个内置的应用程序,这个内置的应用程序通过ServiceManager接口获取指定的服务,然后通过这个服务来获得硬件服务。转载 2013-07-18 12:05:18 · 883 阅读 · 0 评论 -
在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法。简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中。接着,在Ubuntu上为Android系统编写Linux内核驱动程序一文中举例子说明了如何在Linux内核编写驱动程序。在这一篇文章中,我们将继续介绍Android系统硬件驱动程序的另一转载 2013-07-18 12:03:25 · 598 阅读 · 0 评论 -
Android硬件抽象层(HAL)概要介绍和学习计划
Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,转载 2013-07-18 12:00:06 · 642 阅读 · 0 评论 -
linux蓝牙驱动代码阅读笔记
net/hci_core.cHCI 在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。hci_cmd_task是负责发送CMD的任务,它从hdev->cmd转载 2013-07-24 14:47:13 · 875 阅读 · 0 评论 -
Message,MessageQueue,Looper,Handler
1、MessageQueue:是一种数据结构,见名知义,就是一个消息队列,存放消息的地方。每一个线程最多只可以拥有一个MessageQueue数据结构。创建一个线程的时候,并不会自动创建其MessageQueue。通常使用一个Looper对象对该线程的MessageQueue进行管理。主线程创建时,会创建一个默认的Looper对象,而Looper对象的创建,将自动创建一个Message Q原创 2011-12-15 13:48:28 · 484 阅读 · 0 评论 -
handler2
程序:(1)public class HandlerTest extends Activity { private Handler handler = new Handler(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // sendMe原创 2011-12-15 13:48:01 · 357 阅读 · 0 评论 -
handler
下载,处理大量数据放在Activity的另外一个线程。实现线程的两个方法:1、Thread 2、Runnablehandler.postDelayed(updateThread,3000);//隔3000毫秒调用一次handler.post(updateThread);// 把这个线程对象加入队列handler.removecallbacks(updateThread);//结束原创 2011-12-15 13:46:43 · 431 阅读 · 0 评论 -
WIFI
1、WIFI是一种无线联网技术,连接无线路由器。无线路由器连接一条ASDL线路或者别的上网线路后被称之为热点。2、五种状态1)WIFI_STATE_DISABLED WIFI网卡不可用2)WIFI_STATE_DISABLING WIFI网卡正在关闭3)WIFI_STATE_ENSABLED WIFI网卡可用4)原创 2011-12-15 13:45:02 · 760 阅读 · 0 评论 -
常用控件应用
1、文本框(TextView)2、列表(ListView)3、提示(Toast)4、编辑框(EditText)5、单项选择(RadioButton,RadioGroup)6、多项选择(CheckBox)7、下拉列表(Spinner)8、自动提示(AutoCommplete-TextView)9、日期和时间(DatePicker,TimePicker)10、按钮(原创 2011-12-15 13:41:39 · 503 阅读 · 0 评论 -
android布局属性详解
RelativeLayout用到的一些重要的属性: 第一类:属性值为“true”或“false” android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 an原创 2011-12-15 13:40:10 · 1763 阅读 · 0 评论 -
Android进程间通信(IPC)机制Binder
Android基于linux内核,然而却没有才有unix丰富的进程间通信,而是基于OpenBinder来实现。 在Binder机制中,由Client、Server、Service Manager和Binder驱动程序四个组件组成,其中Client、Server和Service Manager运行在用户空间,Binder驱动程序运行内核空间。Service Manager和Bi原创 2011-11-09 11:37:52 · 956 阅读 · 0 评论 -
上层APP调用底层硬件驱动过程解析
APP应用程序->应用框架层->硬件抽象层-> 硬件驱动程序一、硬件驱动层 进入kernel/drivers文件夹中,创建一文件夹,放入驱动程序。包括头文件,C文件,Makefile,Kconfig。同时对drivers下的Makefile跟Kconfig进行相应的添加,这样配置编译选项后,即可编译。编译完后,可以在/dev,/proc,/sys/class中得到相应原创 2011-11-09 10:53:07 · 10423 阅读 · 0 评论 -
boa移植到android平台上
一 、到http://www.boa.org/上下载bor服务器,本人用的是0.94.13版本。二、将其解压到android源码根目录下的external/boa中三、在boa文件夹下创建Android.mk文件,具体内容如下ifeq ($(TARGET_ARCH),arm)LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)原创 2011-11-08 15:28:49 · 2706 阅读 · 2 评论 -
android长按power键自动关机定制
android的系统不能像Nokia一样,长按住power键会自动关机,还得自己去选择关机选项,然后再确定才关机。这样有时会多些不方便,于是我对源代码进行了小改动,使得长按power键弹出选项框后继续按住三秒即可自动关机。具体步骤如下:一、打开android源码中的frameworks\base\policy\src\com\android\internal\policy\impl\Phone原创 2011-11-08 14:51:20 · 6234 阅读 · 3 评论 -
匿名内部类
匿名内部类必须extends类或implements接口,否则编译器不认识.它是没有类名的,在定义时显示的是它所继承的父类或 接口的名字.一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类,没有类名,根据多态,我们使用其父类名。例:public class Parce16{ public Contents cont(){ return new Conten原创 2011-12-15 13:47:23 · 461 阅读 · 0 评论 -
SQLite
SQLieOpenHelpergetReadableDatabase(),getwritableDatabase(); SQLiteDatabase提供一系列管理数据库的方法。OnCreate(SQLiteDatabase db),OnOpen(SQLiteDatabase db),Onupgrade(SQLiteDatabase db,int old Version,int原创 2011-12-15 13:49:42 · 435 阅读 · 0 评论 -
界面布局与Android数据存储
1、垂直线性布局 (android:orientation="vertical")2、水平线性布局 (android:orientation="horizontal")3、相对布局(RelativeLayout)4、表单布局(TableLayout)5、切换卡(TabWidget)1、数据库存储之Shared Preferences原创 2011-12-15 13:42:10 · 493 阅读 · 0 评论 -
RadioGroup RadioButton ,checkBox ,menu
RdioGroup组中有多个RadioButton。 //为RadioGroup设置监听器,需要注意的是,这里的监听器和Button控件的监听器有所不同 genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override publi原创 2011-12-15 13:51:41 · 508 阅读 · 0 评论 -
socket
套接字,用于描述IP地址和端口。服务端:public class SocketActivity extends Activity { /** Called when the activity is first created. */ private Button startButton = null; @Override public void onCre原创 2011-12-15 13:46:06 · 412 阅读 · 0 评论 -
监听、打印
1、private Button button=null; button=(Button)findviewById(R.id.*);或者将上面两步合成一步Button button = (Button)findviewById(R.id.*);2、button.setOnClickListener(new listen()); class listen imp原创 2011-12-15 13:45:33 · 1004 阅读 · 0 评论 -
Android开发环境搭建
JDK(http://java.sun.com/javase/downloads/index.jsp)->Eclipse(http://www.eclipse.org/downloads) ->ADT (在eclipse中的Help->Install New Software中输入 https://dl-ssl.google.com/android/eclipse/)->SDK(在eclip原创 2011-12-15 13:44:31 · 404 阅读 · 0 评论 -
网络与通信
1、HTTP通信(HttpURLConnection接口、HttpClient接口、Handle实现更新)2、Socket通信3、网络通信的中文乱码问题(getBytes,new String(Bytes[],“解码方式”))4、Webkit应用(开源浏览器网页排版引擎,WebView与Javascript互相调用)5、WiFi6、蓝牙原创 2011-12-15 13:43:56 · 384 阅读 · 0 评论 -
progressBar ListView
ProgeressBar android:id="@+id/firstBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:visibility="gone"//不可见原创 2011-12-15 13:52:10 · 529 阅读 · 0 评论 -
调试程序
DDMS使用;logcat:显示出来的日志,主要用到D/W/E 其中+号用于添加过滤项。如:FilterName:sysout ->过滤项名称 byLogTag:system.out->过滤方法 bypid: byloglevel:none ->所有的 widow->showview->other->android->log原创 2011-12-15 13:50:07 · 523 阅读 · 0 评论 -
通过arp实现输入ip地址输出mac地址
当一台手机连上wifi热点时,想通过ip知道对方的mac地址,之前网络上找了篇通过netbios实现通过ip寻找mac地址,然而该方法只局限于windows系统,后来了解到通过arp协议可以实现这个功能。于是就有如下的代码:ipmac.c:#include #include #include #include #include #include #include原创 2011-11-08 16:03:18 · 3343 阅读 · 0 评论