
Android
文章平均质量分 68
chenlong12580
这个作者很懒,什么都没留下…
展开
-
个人解读Activity之四-Part2-File
今天,我们来记录数据存储的part2,讨论以下关于File和SQLite的话题。我们知道,再关系型数据库出现之前大家都习惯用文件来保存数据,后来出现了数据库,能够更加有效的组织数据,我们首先来讨论用文件存取数据。 对于文件,我们很容易想到对它的常用操作:创建、读取和写入等!Android也提供了这些方法,接下来看一下如何使用,很显然,我们首先要获得当前Activity的输入流才能输入原创 2011-12-18 11:26:28 · 811 阅读 · 0 评论 -
个人解读Activity之三
这一节,我们讨论启动Activities并获取结果这个议题。不知道大家还记不记得,在上一节中我们已经实现了在一个Activity中启动另一个Activity,但是仅仅是调用了startActivity()这个方法来启动,之后就没管了,但是我们试想一下,假如你要从一个电话簿中选取一个联系人记录,然后在创建一个新的Activity来显示这个记录的详细信息,这就涉及到第二个Activity必须知道用户再原创 2011-12-16 20:28:37 · 742 阅读 · 0 评论 -
使用系统定义的Content Provider
之前我们介绍了关于Content Provider 的内容。这里我们在分两节来介绍,使用系统定义的Content Provider和自定义的Content Provider。 这里我们来介绍使用系统定义的Content Provider:通过ContentResolver来读取系统的联系人信息。 第一步: 新建一个工程命名为readPeople,因为我们以列表的形式来显示,所以这原创 2011-12-26 10:27:29 · 1139 阅读 · 0 评论 -
解读Content Provider之二
修改数据 可以通过如下方法修改被content provider保存的数据: 1.添加新的记录; 2.为已经存在的数据添加新值; 3.批量更新已经存在的记录; 4.删除记录 所有的数据修改操作都可以通过ContentResolver的方法来完成。一些content provider在修改数据的时候要求拥有比读取数据拥有更多的权限。如果没有修改cont翻译 2011-12-25 21:07:02 · 1884 阅读 · 0 评论 -
推荐一个不错的自定义UI
前面向大家介绍了使用完全自定义UI和组合部件自定义UI两种方式创建自己的UI组件。举出的例子都是玩具式的,主要介绍了思路,偶然在网上发现了一个不错的自定义UI,作者实现的是一个显示Gif动画的View。是完全自定义UI方式实现的,个人觉得很不错,有兴趣的可以看一下实现的源码。这里附上项目在google code平台上的主页自定义Gif View,作者也给出的一个Demo。 再次感谢这原创 2012-01-07 10:43:01 · 1446 阅读 · 0 评论 -
自定义UI实例
我们这里写两个实例,第一个是完全自定义的UI;第二个是组合部件的自定义UI。完全自定义UI示例 第一步:新建一个工程命名为:custom_ui; 第二步:实现自定义的UI类,这里选择继承自View,主要就是注意一下构造函数和以on...开头的覆盖的函数,这里仅仅覆盖onDraw()函数,具体代码如下:public class MyView extends View原创 2012-01-06 13:36:21 · 2346 阅读 · 2 评论 -
解读创建自定义组件
自定义组件 Android系统为用户创建自己的UI提供了功能强大的组件模型,这个模型是基于View和ViewGroup这些基本的布局类。Android系统包含了预先制作好的View和ViewGroup的子类————分别是widgets(窗口部件)和layouts(布局)————你可以使用这些已经提供的子类构建自己的UI,在刚开始接触Android开发时,我们都是使用这些系统提供的,然而,随翻译 2012-01-05 12:41:52 · 2082 阅读 · 0 评论 -
系统自定义UI示例
在上一节,我们了解到了Android主要使用两种方法来实现自定义UI:完全自定义和组合部件。 在SDK的sample目录下系统给出了一个很好的示例,是完全自定义UI,本来想分析一下的,但是发现已经有人做了这个工作,看了一下,写得挺不错的,侧重源码分析,机理的解释。这里就引用过来,有兴趣的读者可移步至 View编程(5): 自定义View_01_ApiDemo源码研究 阅读。原创 2012-01-05 15:08:12 · 1152 阅读 · 0 评论 -
Android Tomcat 的应用之客户端部分
最近因为做一个客户端的登录部分,最后选择了使用Tomcat作为servlet服务器,MySQL作为数据库,今天就先写了一下客户端的部分,主要就是Android的网络编程部分,服务器端编程明天再写吧,今天有点累了。 首先是布局文件,如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android原创 2012-02-24 21:01:33 · 4613 阅读 · 2 评论 -
Android Tomcat 的应用之服务器部分
接着昨天的写,实现登录的服务端部分。首先得弄个数据库,然后建立一个表,存储所有用户的用户名和密码,当在客户端发出查询请求的时候会把用户输入的用户名和密码传到服务器端,然后在数据库中进行查询,这里我们的表就3个字段,一个ID,一个username和一个password。 然后就是编码实现了,首先是写一个类封装一下数据库中的用户信息,如下:public class User {原创 2012-02-25 21:19:14 · 6163 阅读 · 4 评论 -
Android系统开机画面修改
Android系统开机画面分为下面三个阶段: 1、开机图片:Android内核是基于标准内核的,对linux比较熟悉,特别是在开发板上移植过Linux系统的人就知道在内核引导过程中会显示出一个小企鹅的图片,这就是第一阶段的开机图片,相信大家知道怎么去修改它。Android1.5及其以上版本都取消了这个图片的显示,具体的看内核相关代码就知道了; 2、开机文字:Androi原创 2012-02-27 20:50:34 · 2440 阅读 · 0 评论 -
深入理解Android消息处理系统——Looper、Handler、Thread
熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环转载 2012-03-04 23:36:14 · 1101 阅读 · 0 评论 -
官方解读之 Looper、Handler、Thread
Looper 这个类主要是用来为一个线程执行消息循环的!线程默认情况下是没有与之相关联的消息循环,要想为线程创建一个消息循环,就必须在需要运行消息循环的线程中调用prepare()方法,然后就可以调用Looper的loop()方法来处理消息知道loop停止! 我们几乎都是通过Handler类和消息循环进行交互。 这里有一个典型的实现了Looper线程的例子,在调用pr翻译 2012-03-05 12:42:51 · 1887 阅读 · 0 评论 -
一个Android多线程下载器
一个多线程下载器,支持断点续传,但是没有做界面,具体的看代码可知! 进入资源页面下载: Android多线程下载器原创 2012-03-06 22:20:52 · 1435 阅读 · 0 评论 -
Android 系统中设备节点的创建
查了很多资料,有很多人错误地认为是kernel创建的/dev/yourdevice 在最近的kernel中这种说法是不对的, 其实是kernel仅负责在/sys/创建一大堆下目录和文件, 而真正的设备节点是在用户空间创建的, 在android系统中,由init进程负责处理这种uevent事件,如果是"add" device事件, init转载 2012-03-20 20:09:25 · 4227 阅读 · 0 评论 -
官方解读Activity之一
一个Activity是一个单独的,用户聚焦的一个组件,几乎所有的activities都可以和用户进行交互,因此Activity类关注创建窗口,你可以通过setContentView(View)这个函数在建立的窗口上放置自己的UI。虽然activities经常是以全屏的形式呈现给用户,但是它也可以以其他的方式来使用:以一个浮动窗口显示(通过设置WindowsIsFloating这个主题)或者是嵌入其翻译 2011-12-15 18:02:06 · 1097 阅读 · 0 评论 -
Tab Layout 之多个Activity实现
上次说了可以用两种方法实现Tab Layout,之前写了单个Activity实现,现在来用多个Activity来实现,这篇文章是翻译的android develop网站上的文章! 单个Activity实现就是在一个Activity里面切换显示内容,我们上次用的是三个TextView。这里我们用3个Activity实现,每次点击一个tab的时候,就打开一个新的Activity!我翻译 2011-12-15 14:22:13 · 7568 阅读 · 1 评论 -
个人解读Activity之四-Part1
这一节,我们接着前面的介绍,讨论一下第五个议题,其实就是关于Android中的数据存储问题。我们先来看看有哪些常见的数据存储方式:文件存储、数据库存储这些都是比较常见的方式,在Android中也提供了这些存储方式。当然还有就像之前介绍的那样,主要包含两大类,一类是文档类的数据,主要是用文件或者数据库来存储,第二类就是配置文件(例如日历视图的配置文件:周视图或者日视图等等)的存储,者在Android原创 2011-12-17 14:41:16 · 874 阅读 · 0 评论 -
个人解读Activity之四-Part2-SQLite
上次我们说了part1中的File的操作,今天我们来说一下SQLite有关的内容,首先还是看一下一张截图:相信看过part1部分的人都知道了,这代表的含义,打开或者创建一个数据库的方法,返回值是一个SQLiteDatabase的类,这个等会仔细说;再来说说这个方法的参数,看看下面的图: 第一个参数是数据库的名称,第二个是操作的模式,第三个参数是是一个可选的facto原创 2011-12-20 10:11:59 · 1042 阅读 · 1 评论 -
官方解读Intent之一
Intent是对即将进行的一项操作的抽象描述。startActivity可以使用它来启动一个Activity,broadcastIntent可以将他发送给任何感兴趣的BroadReceiver组件,并且可以利用startService(Intent)或者bindService(Intent, ServiceConnect, int)和后台的Service进行通信。Intent对于不同的应用之间代码翻译 2011-12-21 13:54:08 · 1062 阅读 · 0 评论 -
Tab Layout 之单个Activity实现
要创建一个 tabbed UI,我们需要一个TabHost和一个TabWidget。并且TabHost一定要是layout的根元素,TabHost要包含用来显示tabs的TabWidget和一个用来显示tab内容的FrameLayout. 我们可以使用两种方法来完成tab的显示内容:一种是在一个Activity中交换几个Views来显示不同的tabs,在本文介绍;另一种是利用多个A原创 2011-12-14 15:05:31 · 2117 阅读 · 0 评论 -
官方解读BroadcastReceiver
综述 BroadcastReceiver是接收从sendBroadcast()发出的intent的基类。你可以通过Context.registerReceiver()方法在代码中动态的注册一个BroadcastReceiver的实例,也可以通过再AndroidManifest.xml文件中用标签来静态声明。 注意:如果你实在Activity.onResume()方法中注册的一个re翻译 2011-12-23 10:11:53 · 1043 阅读 · 0 评论 -
AlarmManager的学习与实现
综述 这个类提供了一种使用系统提供的alarm服务。这个服务允许用户安排他们的应用程序在将来的某一个时间点运行。当设置的alarm响起,那么之前系统为这个alarm注册的Intent就会自动的运行目标应用程序(如果此时应用程序还没有运行)。即使在系统处于休眠状态时(如果在此期间alarm响起,那么就会唤醒设备),系统注册的alarm依旧保持,但是当alarm被关闭或者是系统重启后,之前设原创 2011-12-24 15:59:41 · 7819 阅读 · 1 评论 -
解读Notification
综述 status bar notification添加一个图标(和一条可选的ticker-text消息)到系统的status bar(状态条),并且显示一个notification message(通知消息)在系统的notifications window(消息窗口)中。当用户选择了消息窗口中的一条消息,Android系统就发出一个通过Notification定义的Intent(通常是原创 2011-12-23 22:53:32 · 3644 阅读 · 0 评论 -
实现自定义布局的Notification
上一节中,我们实现了自己的notification,相信大家都有了一些认识,在最后也接受了利用RemoteView来实现自定义布局的notification,这里就来举一个示例,方便理解。 第一步:新建一个工程,命名为cusNotification; 第二步:新建一个布局文件(即自定义的notification的布局文件:custom_notification.xml,原创 2011-12-24 11:00:37 · 19875 阅读 · 2 评论 -
FrameLayout之我见
在Android中有着几种不同的布局,例如:线性布局、帧布局、表格布局、绝对布局和相对布局。之前一直对帧布局不是很理解,今天仔细看了看,就记录如下: 首先是看了一下官方文档的说明,以下是我个人的翻译,呵呵,英语太差,感觉翻译的不好: 帧布局被设计用来再屏幕上留下一个区域显示单个元素。一般地,帧布局应该被用来显示单个子视图,因为当多个子视图互相不重叠时,要想再不同尺原创 2011-12-15 15:28:37 · 2941 阅读 · 0 评论 -
个人解读Activity之一
前面翻译了以下有关Activity的官方文档,接下来,我将把自己理解的Activity也记录下来!这里的记录就是按照前面的那七个小的主题来介绍!即:1、Fragments2、Activity的生命周期3、配置改变4、启动Activities并获取结果5、保存持久的状态6、权限7、进程的生命周期 但是我们这里不按照一次顺序介绍,由于Fragment是另一个原创 2011-12-16 10:36:34 · 1018 阅读 · 0 评论 -
个人解读Activity之二
这一节,我们来看看配置改变(可以是屏幕转向,语言切换或者是输入设备的改变等等)这个议题! 在前面我们就通过官方文档知道了,当配置改变的时候,任何显示用户界面的内容都需要更新,而最安全的做法就是在配置改变后我们关闭之前的实例,然后获取之前实例的资源创建新的实例,并且恢复到之前实例的那个状态! 在这里,我们来改变一下配置,用最简单的屏幕换向来测试,模拟器的换向可以利原创 2011-12-16 13:39:37 · 943 阅读 · 0 评论 -
官方解读Activity之二
本文接着上一篇写:配置改变如果设备的配置(被定义为Resources.Configuration类)被改变了,那么所有显示用户界面的都需要被更新以适应新的配置。因为Acitivity是和用户交互的首要机制,它包含了对配置文件改变的特殊支持。除非你特殊指定,否则,配置文件的改变将会导致你当前的activity被销毁,经历了一个正常的activity的生命周期:onPause()、onSt翻译 2011-12-15 20:22:58 · 992 阅读 · 0 评论 -
解读Content Provider之一
综述 Content providers是一个Android应用程序的主要部分,主要是为应用程序提供内容。它对数据进行封装然后通过单一的ContentResolver接口提供给应用程序。只有需要在多个应用程序间共享数据时,content provider才是必须的。例如:有多个应用程序(例如:打电话程序和发短信程序等等)都需要使用联系人的数据,因此我们必须将这些数据存放在content翻译 2011-12-25 14:59:50 · 1366 阅读 · 0 评论 -
根文件系统及Busybox详解之一
根文件系统及Busybox简介目录1.根文件系统简介...22.Busybox简介...22.1Busybox简介...22.2Busybox目录结构简介...22.3init进程简介...33.构建自己的根文件系统...93.1编译Busybox.93.2向Busybox中添加新命令...194.附录...264.1Busybox实现的简单分析...2原创 2013-04-05 13:55:25 · 13254 阅读 · 6 评论