android之开发技术详解
文章平均质量分 78
Android开发中关于Noitification、Fragment、Service、Broadcast等的源代码分享以及自身的一些经验浅谈。
林泓成
1 分享Android开发的新技术及前沿咨讯2 浅谈自身的学习经验和方法
展开
-
一起来开发Android的天气软件(四)——使用Gson解析数据
离上一篇文章过去才4、5天,我们赶紧趁热打铁继续完成该系列的天气软件的开发。承接上一章的内容使用Volley实现网络的通信,返回给我们的是这一串Json数据{"weatherinfo":{"city":"杭州","cityid":"101210101","temp1":"1℃","temp2":"10℃","weather":"多云转晴","img1":"n1.gif","img2":"d0.gi原创 2014-12-23 09:51:09 · 6168 阅读 · 6 评论 -
一起来开发Android的天气软件(三)——使用Volley实现网络通信
距离上一篇一起来开发Android天气软件二的时间又将近半个月了,之间一直因为有事而没有更新实在抱歉,最近会加快更新的步伐,争取在2015年到来前写完这系列的博文,上一章我们已经使用LitePal框架搭建好了我们所需的数据库,这一章的内容将主要完成关于从中国天气网获取数据的网络通信操作,之前有学习过Android开发的同学应该都知道,Android实现互联网通信主要有两种方法,一种使用HTTPUR原创 2014-12-21 09:04:44 · 6362 阅读 · 11 评论 -
一起来开发Android的天气软件(二)——使用LitePal搭建数据库
谢谢大家对该系列博文的支持与关注,我们现在趁热打铁正式开始我们的Android天气软件的开发吧!没有阅读过之前关于该软件的功能需求的同学可以先看一下 一起来开发Android的天气软件(一),可以先去快速浏览一下,清楚我们的概要体系。今天我们要做的是搭建Sqlite数据库,那这个数据库要存储哪些信息呢!该数据库是用来存储全国的省市县的一些信息,全国共有34个省比如浙江旗下又有好多的市如杭州、温州、原创 2014-12-01 13:07:10 · 6712 阅读 · 14 评论 -
一起来开发Android的天气软件(一)——功能规格介绍
从今天开始呢,打算来介绍如何开发一款Android的天气软件,其中运用到的基础知识点也比较多,比较适合初学或者刚接触Android开发不久的同学一起来学习交流和切磋! 那么我先对这个天气软件进行需求分析,我们主要会实现什么功能呢? 1、查询全国省市县的任意城市的天气信息并可以自由切换 2、手动刷新天气信息 3、后台自动刷新天气 4、自动定位所在地的天气信息原创 2014-11-26 09:08:33 · 6678 阅读 · 23 评论 -
Android开发之发送邮件功能的实现(源代码分享)
Android开发中可能会碰到如何发送邮件的困扰,之前我也查了相关的文档,博友们也分享了不少的发送邮件的办法,总共有3种把,我仔细阅读了下,发现有的讲的太过复杂跟麻烦,不够清晰,我今天就来分享下我认为的最好用的办法来解决该问题,使用Andorid-MAIL Jar包。首先我们先要下载以下四个文件 然后呢在Android平台上发送邮件呢,肯定先要检查网络的状态,网络状态可用的情况下才能发送原创 2014-08-06 13:56:16 · 7760 阅读 · 1 评论 -
Android开发之自定义Spinner样式的效果实现(源代码实现)
android系统自带的Spinner样式是远远满足不了我们实际开发过程中对Spinner UI风格的要求,因此我们肯定需要为了切合整个应用的风格,修改我们的Spinner样式。系统给我们提供了两种常见的修改方式,一个是用XML方式静态,另一个就是Java代码动态来修改啦,我们这篇文章呢主要就是介绍如何动态修改Spinner的样式。我的实现方法呢,是自己构造一个SpinnerAdapter,继承来原创 2014-08-06 10:02:44 · 4021 阅读 · 0 评论 -
ViewPager+Fragment切换时无法更新数据问题解析(源代码分享)
在一个 Android 应用中,我们可以使用 FragmentPageAdapter 来处理多 Fragment 页面的横向滑动。但是当 Fragment 对应的数据集发生改变时,我们都希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我们使用 notifyDataSetChanged() 后,我原创 2014-07-28 16:24:58 · 6742 阅读 · 1 评论 -
Android开发之自动登录功能的实现
在我们平时使用的手机应用都可以实现只需要登陆一次账号后,第二次进入应用直接跳转到效果界面的效果,还有QQ的登陆框是如何记忆我们的隐身登陆,保存账号选项的呢,这些都是通过使用SharedPreferences共享参数效果实现的,而无须使用数据库来存储。以下我们直接看详细代码分析。package com.example.account.login;import java.util.HashMa原创 2014-06-27 09:36:41 · 7231 阅读 · 8 评论 -
Android开发之自定义Dialog二次打开报错问题解决
之前自定义了一个AlertDialog对话框,第一次点击时正常,但第二次调用时会出现错误:java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 关于这个错误纠结了我原创 2014-06-27 09:01:20 · 5085 阅读 · 1 评论 -
Android开发之大位图压缩水印处理
我们在发微博或者csdn博文的时候都可以给图片加上一个水印,一个独立的标识,那是怎么实现的呢?先封装一个BitmapTools封装类,该类要解决的问题是一将突破存储至sdcard中,二给图片加上水印。原创 2014-05-12 08:20:55 · 2419 阅读 · 0 评论 -
Android开发之大位图二次采样压缩处理(源代码分享)
图片有各种形状和大小。在许多情况下这些图片是远远大于我们的用户界面(UI)且占据着极大的内存空间,如果我们不对位图进行压缩处理,我们的程序会发生内存泄露的错误。原创 2014-05-10 09:19:16 · 2478 阅读 · 0 评论 -
Android开发之手机拍照功能的实现(源代码分享)
Android系统里调用手机拍照的功能有两种方法一种直接调用手机自带的相机另一种就是使用自己做的拍照应用。比如Camera360 一款于各操作系统都有的的功能强大的手机摄影软件;能拍摄出不同风格,不同特效的照片,同时具有云服务和互联网分享功能,全球用户已经超过2.5亿。现在专门的开发一款手机摄影软件肯定没多大意义,已经比不过这些前辈了,我们只需学会如何调用手机自带的摄像机完成拍照并把照片获取过来,原创 2014-05-05 13:11:53 · 7692 阅读 · 3 评论 -
Android开发之Handler和Looper的关系
关于Handler的总结。Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:原创 2014-05-03 16:17:37 · 2658 阅读 · 1 评论 -
Android开发之使用Handler封装下载图片工具类(源代码分享)
如果每下载一张图片,就得重写一次Http协议关于多线程的启动和handler的信息传递就显得太麻烦了,所以我们需要直接封装一个工具类,便于我们以后在开发时随时可以调用。原创 2014-05-03 10:49:56 · 3910 阅读 · 4 评论 -
Android开发之Handler的使用方法(源代码分享)
Handler主要接受子线程发送的数据, 并用此数据配合主线程更新UI.. 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发。比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据或者读取本地较大的一个文件的时候,你不原创 2014-05-01 09:36:24 · 2522 阅读 · 0 评论 -
Android开发之使用BroadcastReceiver实现开机自动启动(源代码分享)
上一节已经介绍过BroadcastReceiver实现实时监听电量的功能,这节就来介绍一下如果实现开机自动启动的功能,这个比监听电量还简单不少原创 2014-04-30 10:36:35 · 4274 阅读 · 1 评论 -
Android开发之使用BroadcastReceiver实时监听电量(源代码分享)
Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的。我们可以动态注册这个类的一个实例通过Context.registerReceiver()方法或者静态注册,通过标记在androidmanifest . xml。注意:如果我们注册一个接收器在Activity.onResume()实现,我们应该注销Activity在Activity生命周期的o原创 2014-04-29 23:04:01 · 7310 阅读 · 1 评论 -
Android开发之核心特性SearchView的开发使用(源代码分享)
搜索是一个核心用户特性在Android上。用户应该能够搜索可用的任何数据,内容是否位于设备或网络。帮助为用户创建一个一致的搜索体验,Android提供了一个搜索框架,可以帮助你实现搜索应用程序。原创 2014-04-27 19:20:38 · 2925 阅读 · 1 评论 -
Android开发之WebView的开发使用(源代码分享)
如果我们想提供一个web应用程序(或只是一个网页)作为客户端应用程序的一部分,我们可以使用WebView。WebView类是Android的视图类的扩展,它允许您显示web页面的一部分活动布局。担它不包括任何一个充分发展的web浏览器的特点,如导航控件或一个地址栏。所有的WebView,默认情况下,显示一个web页面。 Webview有什么应用场景呢,我们可以使用WebView用来原创 2014-04-29 07:32:26 · 3146 阅读 · 0 评论 -
Android开发之GridView的使用(解读谷歌官方API)
GridView将图片显示在二维可移动的网格里,使用ListAdapter可以将Grid项目自动填充满整个布局。下面我们根据官方文档的例子来实现一下使用GridView,点击视图里的图片弹出图片的position的效果。原创 2014-04-26 19:55:21 · 2559 阅读 · 0 评论 -
Android开发之Dialog的三种列表显示(解读谷歌官方API)
根据谷歌的官方文档呢,我们可以有三种列表显示的关于ALertDialog api的可用:。(1)传统的单一选择列表(2)一个持久的单一选择列表(单选按钮) (3)一个持久的多项选择列表(复选框) 。创建单一选择列表很简单,使用setItems()方法。 public AlertDialog onCreateDialog(Context context,String name,int item)原创 2014-04-25 09:31:11 · 2516 阅读 · 0 评论 -
Android开发之Serializable 和 Parcelable的区别(源代码分享)
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。一 序列化原因:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。 二 至于选取哪种可参考下面的原则:1.在使用内存的时候,Parcelable 类比Serializable性能高,所以原创 2014-04-18 17:11:05 · 2586 阅读 · 0 评论 -
Android开发之AIDL实现原理解析(源代码分享 )
在开始本章之前,先向大家介绍COM的一个概念---------Proxy/Stub结构(代理/存根结构) Android就是在传统的C/S架构中加入了一层,实现IPC。我们下面来详细介 绍一下android的aidl实现原理。 AIDL(Android接口定义语言)是类似于其他你遇到过的IDL。它允许您定义的编程接口,客户端和服务达成一致,以互相交流使用进程间通信(IPC)。在Android上,一个进程无法正常访问另一个进程的内存,而AIDL可以为你实现。AIDL的使用呢和我之前写的Messe原创 2014-04-16 12:53:35 · 6341 阅读 · 1 评论 -
Android开发之Service通过Messenger实现线程间的通信
Messenger信使其实在真正使用中用到的并不多,但是面试的时候考官还是十分想要考察一下你的基本功的。那我们现在先来看一下Messenger的使用场景。如果你需要你的Service与远程线程通信,那么您可以使用一个Messenger来为您的Service提供的接口。这种技术允许您执行进程间通信(IPC),而不需要使用AIDL。那关于Messenger的使用有哪些基本总结呢。(1)在Service原创 2014-04-12 17:42:00 · 2607 阅读 · 0 评论 -
Android开发之Service与Activity数据交互(源代码分享)
Service想要与Activity进行数据交互,首先Activity先得绑定Service.bound service是service 的实现,它允许其他应用程序绑定到它并与之交互。要提供bound service,我们必须实现onBind()回调方法。这个方法返回一个内部对象定义的编程接口,Activity可以使用与Service进行交互。那么具体该如何实现呢,首先我们还是一样先创建一个MyS原创 2014-04-10 08:59:11 · 4067 阅读 · 0 评论 -
Android开发之Service与IntentService的区别与使用场景(源代码剖析)
因为最大部分的service不需要同时处理多个请求(处理多个请求是一个比较危险的多线程的场景),这样在在这种情况下呢,最好使用IntentService类如果你实现你的服务。 使用intentService与service有什么不同呢 (1)直接 创建一个默认的工作线程,该线程执行所有的intent传递给onStartCommand()区别于应用程序的主线程。 (2)直接创建一个工作原创 2014-04-07 12:46:57 · 10739 阅读 · 1 评论 -
Android开发之根据Service的生命周期特点后台连接网络下载图片(源代码分享)
上一章讲到Service在后台启动后不会自动销毁掉,其销毁的方式有两种一个是在外部使用stopService()方法,一个就是在继承Service的类下调用stopSelf(),那么应该何时调用stopself()方法呢,如果不调用的话,service在后台会一直处在连接网络的状态,其内耗是可想而知的。这篇博文就会向大家介绍如果使用handle的信息传送机制来停止service的后台运行。‘M原创 2014-04-07 10:24:18 · 2599 阅读 · 1 评论 -
Android开发之浅谈Service的基本概况和常见问题
Service(服务)是一个应用程序组件,可以在后台执行长时间运行的操作,不提供用户界面。另一个应用程序组件可以启动一个服务,它将继续在后台运行,即使用户切换到另一个应用程序。此外,一个组件可以绑定到一个服务与它交互,甚至执行进程间通信(IPC)。例如,一个服务可能处理网络交易,播放音乐,执行文件I / O,或与一个内容提供者交互,所有的背景。原创 2014-04-06 17:00:10 · 1983 阅读 · 0 评论 -
Android开发之ActionBar结合Fragment的导航功能的使用(源代码分享)
标签在操作栏方便用户去探索,在你的应用程序在不同视图之间切换。ActionBar提供的标签是最理想的选择,因为他们适应不同的屏幕尺寸。一旦你确定了Fragment出现在布局里,添加标签的步骤如下:一:继承ActionBar.TabListener接口,控制哪个标签被选中,进而切换布局;二:对于每一个您想要添加标签,实例化一个ActionBar,选项卡调用setTabListener TabList原创 2014-04-05 09:14:45 · 3041 阅读 · 1 评论 -
Android开发之ViewPager结合Fragment实现滑动页面的效果(源代码分享)
前段日子的博客有介绍过关于ViewPager的使用,发现大家对那篇博客都情有独钟,今天我们就在来看一下ViewPager在Fragment中的使用吧,因为ViewPager是在补丁包中添加的低版本的包,而Fragment又必须运行在android 3.0以上的平台上,这里就出现了一定的矛盾,为了解决这个问题呢,我们的主程序必须继承FragmentActivity取代之前的Acitvity,导包的时原创 2014-04-05 20:10:14 · 2692 阅读 · 0 评论 -
Android开发之使用Preferences设计软件设置界面(源代码分享)
应用程序通常包括设置允许用户修改应用程序特性和行为。例如,一些应用程序允许用户指定通知是否启用或指定的频率与云应用程序同步数据。 如果你想为你的应用程序提供设置,您应该使用Android的偏好Preference来构建一个符合用户体验的界面在其他Android应用程序(包括系统设置)。本文档描述了如何使用Preference的api构建您的应用程序设置。首先我们得先强调使用这种原创 2014-04-03 19:34:32 · 4127 阅读 · 1 评论 -
Android开发之使用SharedPreferences实现QQ登陆的选项框记忆功能(源代码分享)
本系列文章由@林泓成出品,转载请注明出处。 根据上篇博客讲的SharedPreferences的简单实现,我们来实现下QQ登陆的时候用户名自动显示以及勾选是否记忆用户名和隐身登陆的功能,通过实例来展现SharedPreferences的实用性。相关代码如下:package com.example.f15_sharedpreferences01;import java.util.H原创 2014-04-02 18:54:58 · 2704 阅读 · 0 评论 -
Android开发之ContentProvider结合LoaderManager加载数据(图文源代码分享)
ContentProvider作为Android的四大存储方式之一,有着广泛的应用性,它暴露了数据地址,可以让其他应用访问数据,可以用于存储图片、通讯录等信息,这篇博文将详细介绍ContentProvider、URIMatcher,LoaderManager,cursorAdapter的方法使用与介绍。使用ContentProvider的时候一定要注意在manifest清单文件中像Acticity原创 2014-03-31 09:23:04 · 3635 阅读 · 1 评论 -
Android开发之通过CursorAdapter读取数据(源代码分享)
依照惯例我们先来看下谷歌官方文档对游标适配器的介绍,该适配器可以将数据库的数据暴露给ListView,将数据显示在LIstView空间上。特别注意的一点是,官方文档上写道游标必须包含一个列命名为“_id”,否则这个类将不会工作。此外,使用与这个类MergeCursor不会工作如果合并后的游标有重叠的的“_id”列中的值。 通过对官网文档的解读,我们就可以知道通过游标适配器访问数据库库的表单的数据,原创 2014-03-29 23:26:10 · 2684 阅读 · 0 评论 -
Android开发之ViewPager滑动页面效果实现(源代码分享)
我们先来谷歌官方文档对viewpager的介绍,该类允许用户通过页面翻转左右的数据,需要通过实现PagerAdapter适配器来生成视图显示的页面。因为注意这个类是早期设计和开发的,API可能会改变,并在以后更新兼容库,到时候我们需要做相应的处理。ViewPager最常用于结合Fragment,这是一个方便的方式来供应和管理每个页面的生命周期,我们后面的博客介绍相关的内容,今天我们先来简单实现vi原创 2014-03-28 00:13:54 · 4636 阅读 · 7 评论 -
Android开发之Fragment与Activity的数据交互通过回调机制实现(源代码分享)
上一篇文章简单介绍了Android的回调机制的使用,这一篇博文将重点介绍Fragment碎片与activity的数据交互,fragment在Android开发中起着至关重要的作用,通过官方Android api我们可以看到,fragment有着自己的生命周期并依赖于它绑定的activity的生命周期而存在,那样activity与fragment怎样进行数据交互呢,请看此篇博文。MainActi原创 2014-03-26 23:03:48 · 2996 阅读 · 1 评论 -
Android开发之通过接口回调机制加载数据(源代码分享)
Android开发之通过接口回调机制加载数据的简单实现,在实际开发中通过callback方法得到网络加载的数据的使用频率远比通过直接开启线程或异步任务加载数据的频率高的多,这篇文章的代码将简单实现该机智的调用,体会下callback的精髓。 MainActivity的代码package com.example.f07_callback01;import com.example.f07原创 2014-03-26 18:01:17 · 2858 阅读 · 1 评论 -
Android开发之通过Handler的post方法更新UI
在Android中可以通过handler方法完成数据的线程间的传递,但一定要将handler得到的数据通过loop传递到主线程再更新UI吗?其实也可以直接使用handler设计的post方法进行实现,handler的post方法是在主线程运行的,可以直接进行UI的更新操作。原创 2014-03-24 17:04:44 · 3589 阅读 · 0 评论 -
Android开发之自定义Notification(源代码分享)
Android的自定义notification选项我觉得限制还是挺多的,如图所示,官方API告诉我们它依然必须得设置icon,tittle,text三个选项,除此之外,还一定要设置pengdingintent,不少网友还反映 builder.setContent(remoteViews)后面一定要紧跟着builder.setContentIntent(pendingIntent),要不然会报错误:android.app.RemoteServiceException: Bad notification pos原创 2014-03-23 10:26:20 · 3104 阅读 · 0 评论 -
Android开发之android_apk 在线安装(源代码分享)
这篇博文主要介绍android_apk的在线安装,与以往不同,这次除了要编辑Android 客户端的代码外,还要搭建远程服务器的代码,才能仿真实现中Android软件的在线升级。原创 2014-03-22 09:59:08 · 3025 阅读 · 0 评论