Android
文章平均质量分 86
傅荣康
了解更多资讯请加微信caaz01
展开
-
Android之AsyncTask的用法
为什么要使用AsyncTask?在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理原创 2011-11-22 01:22:50 · 13121 阅读 · 2 评论 -
Android开发多线程断点续传下载器
使用多线程断点续传下载器在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度,在下载过程中记录每个线程已拷贝数据的数量,如果下载中断,比如无信号断线、电量不足等情况下,这就需要使用到断点续传功能,下次启动时从记录位置继续下载,可避免重复部分的下载。这里采用数据库来记录下载的进度。效果图 断点续传1.断点续传需要在下载过程中记录每条线程的下载进度2原创 2011-10-01 23:14:36 · 27067 阅读 · 45 评论 -
Android操作联系人
Android系统中的联系人也是通过ContentProvider来对外提供数据的,我们这里实现获取所有联系人、通过电话号码获取联系人、添加联系人、使用事务添加联系人。获取所有联系人1. Android系统中的联系人也是通过ContentProvider来对外提供数据的2. 数据库路径为:/data/data/com.android.providers.contacts/dat原创 2011-09-28 22:40:34 · 13737 阅读 · 5 评论 -
Android四大组件之广播接收者
介绍如何创建广播、如何发送一个无序广播和有序广播、以及监听短信以及监听呼出电话(当我们发短信和打电话,系统就会发一个广播,我们可以拦截此广播进行监听短信以及监听呼出电话)。定义广播接收者1.定义类继承BroadcastReceiver,重写onReceive方法2.当接收到匹配广播之后就会执行onReceive方法3.清单文件中声明,需要在其中配置指定接收广播的动作和类型4.B原创 2011-10-03 17:20:38 · 6725 阅读 · 0 评论 -
Android杀毒实现原理及实例
一个杀毒软甲最核心的部分一个是病毒库一个是杀毒引擎,病毒库从服务器中获得,杀毒引擎实际上是判断程序中的包名和签名是否匹配病毒库中的包名和签名,如果匹配则为病毒,界面使用帧动画来显示。 思路:1.从服务器端把病毒的版本库信息下载下来将解析的数据存放到List集合中2.获取到手机中所有应用程序的包名以及程序的签名3.将病毒库匹配手机应用程序包名及签名4.用ScrollView标原创 2011-10-28 23:17:51 · 12828 阅读 · 16 评论 -
Android和JavaScript互相调用
Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中,软件一打开就会访问网络获取到最新的界面。缺点是会受到网络信号的影响,从而导致访问速度慢。1.用WebView来显示HTML代码2.允许WebView执行JavaScript webView.getSettings().setJavaScriptEnabled(true);3.获取到原创 2012-01-06 18:17:12 · 4231 阅读 · 1 评论 -
Android使用JNI实现Java与C之间传递数据
介绍Java如何将数据传递给C和C回调Java的方法。 java传递数据给C,在C代码中进行处理数据,处理完数据后返回给java。C的回调是Java传递数据给C,C需要用到Java中的某个方法,就需要调用java的方法。Android中使用JNI七个步骤:1.创建一个android工程2.JAVA代码中写声明native 方法 public native String helloFr原创 2011-10-10 01:46:18 · 43759 阅读 · 18 评论 -
Android捕获全局异常信息并实现上传
在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛出的异常排查错误。但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以用UncaughtExceptionHandler捕获全局异常,对异常做出处理。比如我们可以获取到抛出异常的时间、手机的硬件信息、错误的堆栈信息,然后将获取到的所有的信息发送到服务器中,也可以发送到指定的邮件中,以便及时修改bug。示原创 2011-11-23 01:43:28 · 12575 阅读 · 4 评论 -
Android常用UI
详细介绍列表视图(ListView)、单选(RadioGroup)、多选(CheckBox)、下拉列表(Spinner)、菜单(Menu)、内容提示文本框(AutoCompleteTextView)、手势识别(GestureOverlayView)、网页视图(WebView)。1.列表视图(ListView) XML配置 在主界面中配置标签 在res/l原创 2011-10-06 16:04:40 · 7096 阅读 · 2 评论 -
Android获取并设置Activity的亮度
此API只适合2.1以上版本: /** * 判断是否开启了自动亮度调节 * * @param aContext * @return */ public static boolean isAutoBrightness(ContentResolver aContentResolver) { boolean automicBrightness = false; t原创 2012-01-17 23:53:52 · 10107 阅读 · 3 评论 -
Android分别使用HTTP协议和TCP协议实现上传文件
Android上传文件有两种方式,第一种是基于Http协议的HttpURLConnection,第二种是基于TCP协议的Socket。 这两种方式的区别是使用HttpURLConnection上传时内部有缓存机制,如果上传较大文件会导致内存溢出。如果用TCP协议Socket方式上传就会解决这种弊端。HTTP协议HttpURLConnection1. 通过URL封装路径打开一个HttpURL原创 2011-09-30 21:33:16 · 15290 阅读 · 8 评论 -
Android获取系统隐藏服务实现锁屏
实现原理:当按锁屏键时,会发出一个广播,当界面接收到一个广播就可以实现锁频。我们可以调用IDevicePolicyManager服务中的lockNow方法来发送一个广播实现锁屏。IDevicePolicyManager是被系统隐藏掉的,需要通过反射还获取此服务。 步骤:1.创建MyAdmin的广播接收者继承DeviceAdminReceiver2.通过反射 ,获取IDevicePo原创 2011-10-21 11:46:39 · 8528 阅读 · 5 评论 -
Android自动检测版本及自动升级
步骤:1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName。2.从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版本进行匹配,如果不匹配,提示用户进行升级,如果匹配则进入程序主界面。3.当提示用户进行版本升级时,如果用户点击了确定,系统将自动从服务器上下载并进行自动升级,如果点击取消将进入程序主界面原创 2011-10-19 00:25:30 · 116221 阅读 · 99 评论 -
Android TextView 自动换行问题
Android的TextView在显示文字的时候有个问题就是一行还没显示满就跳到下一行,原因是:1) TextView在显示中文的时候 标点符号不能显示在一行的行首和行尾,如果一个标点符号刚好在一行的行尾,该标点符号就会连同前一个字符跳到下一行显示;2)一个英文单词不能被显示在两行中( TextView在显示英文时,标点符号是可以放在行尾的,但英文单词也不能分开 );如果只是想让标转载 2012-06-02 13:46:35 · 72533 阅读 · 11 评论 -
Android自定义Notification
Notification是一种让你的应用程序在不使用Activity的情况下警示用户,Notification是看不见的程序组件警示用户有需要注意的事件发生的最好途径。作为UI部分,Notification对移动设备来说是最适合不过的了。用户可能随时都带着手机在身边。一般来说,用户会在后台打开几个程序,但不会注意它们。在这样的情形下,当发生需要注意的事件时,能够通知用户是很重要的。No原创 2011-10-24 13:28:36 · 16304 阅读 · 0 评论 -
Android中Handler作用
在Android的UI开发中,我们经常会使用Handler来控制主UI程序的界面变化。有关Handler的作用,我们总结为:与其他线程协同工作,接收其他线程的消息并通过接收到的消息更新主UI线程的内容。我们假设在一个UI界面上面,有一个按钮,当点击这个按钮的时候,会进行网络连接,并把网络上的一个字符串拿下来显示到界面上的一个 TextView上面,这时就出现了一个问题,如果这个网络连接的延转载 2011-10-29 23:24:25 · 12833 阅读 · 1 评论 -
Android九宫格
显示九宫格需要用GridView , 要显示每个格子中的视图有两种方式,第一种方式是做成xml文件,再将xml文件做成视图。第二种方式就是在代码中构建出这样一种布局,这里采用第一种方式来实现:GridView:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andro原创 2011-10-19 21:46:46 · 5292 阅读 · 0 评论 -
Android开发音乐播放器
音乐播放器中综合了以下内容:SeekBar、ListView、广播接收者(以代码的形式注册Receiver)、系统服务、MediaPlayer实现的功能:1.暂停/播放、下一首/上一首,点击某一首时播放2.支持拖动进度条快进3.列表排序4.来电话时,停止播放,挂断后继续播放5.可在后台播放 效果图:界面:main.xml:<LinearLayo原创 2011-10-03 16:05:10 · 3266 阅读 · 5 评论 -
Android使用缓存优化ListView
ListView调用Adapter的getView方法获取每一个Item布局,将这些已经获得的Item布局放入缓存,将大大提高获取数据的效率,而且节省更多的流量,将数据进行缓存有两种方法是,一种是将内存缓存一种是sd卡缓存,在此分别进行演示。sd卡缓存:sd卡缓存是将下载的数据保存到sd卡中,当再次要获取数据时,首先要判断sd卡中是否存在,如果存在的话,就直接读取sd卡中的数据,如果不存在原创 2011-11-25 20:04:50 · 10734 阅读 · 3 评论 -
Android采用ListView实现数据列表显示
要将数据库中的数据列表显示在屏幕上,我们要使用ListView这个控件,当用户从数据库中取出数据时,要将数据绑定到显示控件上,如何绑定呢,我们需要创建适配器进行绑定,创建适配器有两种方式:第一种是用SimpleAdapter创建(要求绑定的数据是List>数据类型)第二种是用SimpleCursorAdapter创建(要求绑定的数据是Cursor数据类型)显示效果如图所示:原创 2011-09-25 13:41:33 · 88868 阅读 · 10 评论 -
Android监听器
这里通过监听内容提供者数据变化和监听发送短信进行讲解监听器。如果用户提供者数据发生了变化,监听器立刻就能收到对数据库操作的记录,而监听器是采用通知的机制,如果不采用通知的机制也可以做,那就是不断的查询数据库,这样的话效率就会很低。而采用通知机制的话,当用户向数据库发送一条记录,ContentObserver立刻就能获取到,我们就可以进行处理数据。监听内容提供者数据的变化1.在内容提供者中可原创 2011-09-27 07:49:28 · 10714 阅读 · 1 评论 -
Android操作嵌入式关系型SQLite数据库
SQLite特点1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数。 除非是主键被定义为Integer,这时只能存储64位整数2.创建数据库的表时可以不指定数据类型,例如:原创 2011-09-25 00:16:41 · 6714 阅读 · 3 评论 -
Android中Tween动画和Frame动画实例
Animation主要有两种动画模式:Tween动画和Frame动画Tween动画由四种类型组成alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果res目录下新建原创 2011-11-07 18:35:01 · 3598 阅读 · 2 评论 -
Android四大组件之服务
很多情况下,一些与用户很少需要产生交互的应用程序,我们一般让它们在后台运行就行了,而且在它们运行期间我们仍然能运行其他的应用。为了处理这种后台进程,Android引入了Service的概念。Service在Android中是一种长生命周期的组件,它不实现任何用户界面。基本原创 2011-10-07 18:21:01 · 4740 阅读 · 0 评论 -
Android四大组件之Activity
详细介绍如何创建Activity、生命周期、内存管理、启动模式。创建Activity一.定义Activity 1. 定义Activity 定义类继承Activity 2.在AndroidManifest.xml的节点中声明显式意图创建Activit原创 2011-10-02 19:23:52 · 3035 阅读 · 1 评论 -
Android使用内容提供者方式进行存储
内容提供者(ContentProvider)主要作用是对外共享数据,如果数据通过内容提供者对外共享了,那么其他应用就可以从内容提供者中查询到数据,并且可更新数据、删除数据、添加数据,如果采用文件的操作模式对外共享数据,数据的访问方式会因为存储方式的不同导致数据的访问方式无法得到统原创 2011-09-25 22:30:53 · 4925 阅读 · 0 评论 -
Android实现网络图片查看器和网页源码查看器
网络图片查看器清单文加入网络访问权限: || 界面如下:示例:public class MainActivity extends Activity { private EditText imagepath; private原创 2011-09-26 00:24:05 · 7435 阅读 · 2 评论 -
Android读写文件
用文件进行数据存储 1.存储到android自带的存储空间中 Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。public class FileService原创 2011-09-24 21:03:15 · 11853 阅读 · 2 评论 -
Android进程与生命周期介绍
Android系统会尽可能长的延续一个应用程序进程,但在内存过低的时候,仍然会不可避免需要移除旧的进程。为决定保留或移除一个进程,Android将每个进程都放入一个“重要性层次”中,依据则是它其中运行着的组件及其状态。重要性最低的进程首先被消灭,然后是较低的,依此类推。重要性共分五层,依据重要性列表如下: 1. 前台进程•是用户操作所必须的,任一时间下,仅有少数进程会处于前台,仅当内原创 2011-11-18 15:30:53 · 5515 阅读 · 1 评论 -
Android之世面上程序锁的实现
当我们为程序设置密码后,当我们第一次进入该程序时就会提示我们输入密码,输入正确密码后就可以继续访问该程序,如果再次访问该程序就不会提示我们输入密码,这就是市面上常见程序锁的实现。开发思路:1. 开启服务,在服务中开启一个死循环,这个死循环用来检测当前访问的程序是不是被加锁的程序,如果是则弹出输入密码对话框。这里采用数据库来保存被加锁的程序。2. 密码被保存在xml 中,如果匹配密码后则原创 2011-11-01 23:26:52 · 14771 阅读 · 4 评论 -
Android-ADB常用命令
1.adb shell :Linux命令行控制台# cd system/bin :查看Linux下的所有命令# ls# ping localhost :检查网络连接2.adb kill-server :结束adb服务3.adb start-server :启动adb服务4.adb devices :列出与adb 服务相连的手机5.adb -s emulator原创 2011-11-08 15:28:21 · 2610 阅读 · 0 评论 -
手机防盗之获取手机经纬度
获取手机经纬度有 gps , network , 基站 三种方式,我们可以根据定位的条件,获取一个最好的定位方式。然后将获取到经纬度信息发送到指定的手机号码中。/* * 单态只允许存在一个实例. * 获取手机的gps信息 */public class GPSInfoService { private Context context; private LocationManage原创 2011-10-23 00:55:15 · 4763 阅读 · 4 评论 -
Android实现任务管理器
任务管理器可以实现的功能有:1.查看当前系统下运行的所有的进程2.可以查看每个进程的进程号、版本号以及内存占用情况3.杀死进程(可以杀死全部进程或者杀死指定的进程)4.查看系统剩余内存效果图:原创 2011-11-03 18:31:00 · 10871 阅读 · 7 评论 -
Android px和dip及sp的区别及转换代码
px (pixels)像素 -- 一般我们HVGA代表320x480像素,这个用的比较多。 dip或dp (device independent pixels)设备独立像素 -- 这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA cwj推荐使用这个,不依赖像素。 sp (scaled pixels — best for text size)放大像素-- 主要处理字体的大转载 2012-01-19 09:14:24 · 2746 阅读 · 0 评论 -
android屏幕适配
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情。 首先:你需要在AndroidManifest.xml文件的元素如下添加子元素supports-screens android:largeScreens="true" android:normalScreens="true" an转载 2012-03-08 16:00:04 · 4567 阅读 · 1 评论 -
Android设置RadioButton在文字的右边
效果图如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical原创 2012-02-19 15:49:13 · 23800 阅读 · 1 评论 -
android setTag (int key, Object tag)抛出IllegalArgumentException的问题
setTag是android的view类中很有用的一个方法,可以用它来给空间附加一些信息,在很多场合下都得到妙用。setTag(Object tag)方法比较简单,这里主要谈一谈带两个参数的setTag方法。官方的api文档中提到:“ The specified key should be an id declared in the resources of the applica转载 2012-02-17 12:06:54 · 11162 阅读 · 3 评论 -
Android使用Pull解析器解析XML文件
Pull简介 1.常见的XML解析方式有三种,DOM、SAX、Pull,Android系统中推荐使用Pull 2.Pull解析器是一个开源的Java项目,Android系统内部解析XML文件均为此种方式,也可用于JavaEE项目 3.Android SDK中已经集成了Pull解析器,无需添加任何jar文件 4.Pull解析器运行方式与SAX类似,提供各种事件的判断原创 2011-09-28 00:22:14 · 2929 阅读 · 0 评论 -
Android实现号码归属地查询
我们通过发送XML访问 WebService就可以实现号码的归属地查询,我们可以使用代理服务器提供的XML的格式进行设置,然后请求提交给服务器,服务器根据请求就会返回给一个XML,XML中就封装了我们想要获取的数据。发送XML1.通过URL封装路径打开一个HttpURLConnection2.设置请求方式,Content-Type和Content-Length XML文件的Co原创 2011-09-27 22:27:22 · 5985 阅读 · 0 评论 -
Android实现电话拨号器和短信发送器
电话拨号器实现原理:用户输入电话号码,当点击拨打的时候,由监听对象捕获,监听对象通过文本控件获取到用户输入的电话号码,由于系统已经实现了电话拨号功能,所以我们只需要调用这个功能就可以了。步骤:1.界面布局2.编写Activity3.使用意图过滤器激活电话拨号功原创 2011-09-22 22:04:08 · 8916 阅读 · 3 评论