自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

转载 如何设计一个优秀的API

到目前为止,已经负责API接近两年了,这两年中发现现有的API存在的问题越来越多,但很多API一旦发布后就不再能修改了,即时升级和维护是必须的。一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的。如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的打击就更大。如果API经常发生变化,用户就会失去对提供方

2016-08-16 08:14:18 393

转载 如何正确合理的设计一个接口项目

首先,我这里说明接口,不是代码里的接口,而是接口项目,如果想错了就不用往下看了。  在手机广泛流行的今天,手机应用也随之越来越多,而且成长的速度也非常快。手机应用软件开发实现方式同普通PC软件一样,也分为BS和CS方式。而采用CS方式,在服务器端大多采用接口的形式提供数据交互(主流数据交互方式有:Json、WebService等),今天要说的就是如何设计接口。  接口作为连通客户端

2016-08-16 08:11:46 447

原创 快递鸟api接口的问题及解决方案

前提:对于快递的物流信息查询,相应大家在某宝上都接触过,但是在功能开发上,不知道用的是哪家公司的接口呢?百度一搜,就会有很多快递api接口的信息,最后筛选出来,我用了“快递鸟”,完全是被“免费且不限次数”诱惑的。至于快递鸟的api如何使用,我在这里不说了,只要去官网下载相应的说明,就能搞定。我今天要说的是,在使用快递鸟的时候出现的问题及解决方案。场景:在测试的过程中,查询物

2016-08-05 16:11:31 13209 1

原创 利用js+php的技术,实现全国地址多级联动的功能

项目开发已经快到收尾的阶段,但还有几个功能还没有完成,其中有一个功能,让我纠结了几天——全国省份、城市、区/县和街道/镇的显示。看到这个需求的时候,第一反应是这只不过是个简单的“多级联动”的问题,没有什么难度。无非就是将全国所有的城市资料写入到数据表就行了。但是一想到全国那么多城市,我就懵了。这个工作量不小,于是百度到这么一篇文章-《世界国家省份城市县区街道村地址邮编常用通用功》。这篇文章

2016-05-29 12:57:32 2691

原创 PHP弱类型与JAVA强类型之间的矛盾

As we know,PHP是一门弱类型的语言,所以在声明变量的时候,可以不用说明类型。这一特性,在PHP的开发过程中,String类型和Integer类型经常可以混淆。但是,Java是一门强类型的语言,String类型和Integer类型的转换是需要借助接口来实现的。在APP的开发当中,我就遇到了这样一个问题,Server端(PHP语言)中输出的数据是String类型,而client端(JAVA

2016-02-22 11:51:43 1350

原创 Bug错题集-20160213

java.io.filenotfoundexception  http://192.168.1.101这条提示出现的时候,我本以为是上传的Json过大导致找不到文件,后来经过排查后,发现是上传的json内容超过了server端文件的处理范围,就是说server端的文件只能处理三个字段,而我上传的json包括了六个字段,所以导致流错误。2 agruments, but ...need

2016-02-13 15:00:30 286

原创 野人学Android第三弹——利用java的反射机制创建一个数据操作类

在android的教学视频中,知道“Bean”的存在,觉得挺有道理的,所以在Andorid的开发中,经常会运用到。但是在实际的开发中,数据结构经常会调整,而在调用bean的类中

2016-01-14 23:52:55 381

原创 野人学Android第二弹——AutoCompleteTextView自动搜索数据库

AutoCompleteTextView的作用不言而喻,可以减少输入量,提高效率。比如说,你想在TextView中输入五个字,而用了AutoCompleteTextView这个控件后,只需要输入两个字就会弹出你想要的“五个字”,然后选中就OK了。推敲一下,这“五个字”是预先放在了一个数组中,所以可以根据输入的“两个字”进行匹配,出现刚才说的那种效果,就像百度搜索中的历史数据一样。那么,当历史数据的

2015-12-12 21:46:30 1342

原创 野人学Android第二弹——多张图片批量上传

在上一篇博文中,跟大家介绍了单张图片的上传方法。想必大家觉得不过瘾,如果我有很多照片需要上传怎么办?总不能循环调用单张图片上传的方法吧?不过,一开始我没有思路的时候,还真循环调用过,只不过效率太低就放弃了。那么,如何在单张图片上传的基础上进行多张图片批量上传呢?关键是修改HTTP请求中“上传数据的信息”

2015-12-12 12:32:55 1055

原创 野人学Android第二弹——单张图片的上传

上一篇博文中,我简单讲解了图片上传的基本原理,可能你还有点不懂,那么在本篇博文中,我会以具体的代码来阐述下Android是如何将图片上传到服务器的。有两个难点需要解决:1、Android端的HTTP的信息流的构建;‘2、PHP服务器端的接收。

2015-12-05 21:15:31 922

原创 野人学Android第二弹——图片上传到服务器的基础原理

工欲善其事必先利其器,在进行代码编写之前,来研究下手机客户端是如何将图片上传到服务器端的吧。图片也是文件的一种,其上传的协议是基于HTTP的,所以来看下普通网页上传图片的时候,其HTTP发生了什么变化。我用php新建了一个具有上传图片功能的网页,并且在Chrome浏览器中运行,进行图片上传。利用Chrome的开发者工具进行调试,出现了上面的内容。Headers的内容有点多,

2015-12-04 11:16:22 1944

原创 野人学Android第二弹——照片的拍摄与存储(二)

接着上一篇博文的内容,本篇博文会针对照片的数据库存储进行探讨。首先,跟大家介绍一个方法。正如注释所示,这个insertImage方法是插入图片到数据库并且创建一个小图片的。该方法将imagePath转化成Bitmap类型的数值,然后利用另一个InsertImage方法进行插入图片信息。按图索骥,让我们来看看其核心代码在哪里。接下来查看下标注1中涉及到的inser

2015-12-02 00:11:50 353

原创 野人学Android第二弹——照片的拍摄与存储(一)

首先来说一下相机的调用,利用Intent调用MediaStore.ACTION_IMAGE_CAPTURE来实现。代码如下:Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);天生好奇的你,是不是会问,“MediaStore.ACTION_IMAGE_CAPTURE”是什么呢?来看下源码。android

2015-11-21 20:52:55 453

原创 野人学Android第二弹——多Activity之间的生命周期的规律摸索及多个Activity同时销毁的实现

说到Activity的生命周期,想必大家都应该烂熟于胸了吧,网上的教程也多如牛毛。但是经过实际的开发后,我发现多个Activity之间经过跳转后,其生命周期的规律比单个Activity更加的复杂,同时,研究多个Activity的生命周期比单个Activity的生命周期更加具有实际的意义。首先建立三个Activity,暂时定义为MainActivity、SecondActivity、Th

2015-11-19 23:58:36 374

原创 野人学Android第二弹——利用Zxing实现二维码效果的步骤讲解

如今,不管是微信还是淘宝,越来越多的app会加入二维码扫描的功能,那么二维码的生成和解析怎么实现呢?我首先想到的是,这么流行的功能,一定有第三方类,果不其然,在百度之后,发现google已经将二维码的功能封装成zxing类,并且已经相当成熟。自然而然,只要将这个类添加到我的app项目中,就ok了。思路很简单,但是现实很骨感。刚开始接触zxing的时候,无从下手,百度了很多博客,有些细节没有讲全

2015-11-18 16:00:44 465

原创 野人学Android第二弹——自定义控件的分析与实例

在学会Android基础的控件之后,有没有想自己开发一个控件呢?随着各种需求的提出,基础的控件已经不能满足Android的开发,幸好可以自定义控件,那么这一篇博文,就跟大家聊聊自定义控件。想要跑,先学走。在自定义之前,让我们整理下Android原装控件是怎么运行的:1.xml文件中会声明一个控件,然后就是各种属性;2.JAVA文件中会加载这个xml;3.如果有监听事件,控件会在ja

2015-11-17 11:18:25 304

原创 野人学Android第二弹——主线程传递消息到次线程的摸索

次线程通过handler将message传递给主线程的例子,已经在上一篇博文中贴出,这里不赘述了。举一反三,既然次线程可以传递消息给主线程,那么主线程能不能传递消息给次线程呢?关于实现这个过程,我想到了两个思路。1.参数传递,将要传递的消息封装成参数,传递给次线程;2.handler的消息传递机制;第一种思路当然没有问题,至于第二种思路,我一开始想到的是将上一篇博文中的代码逆向思维下。

2015-11-15 20:58:32 346

原创 野人学Android第二弹——Handler与Thread之间的关系

在Android的世界里,提到Handler,那么势必要提到Thread。Thread是什么呢?很简单,就是“线程”的意思,通俗点讲,就是“一心二用”,在同一阶段进行多个任务。任务与任务之间是相对独立运行的,但是进行消息的传递,将次线程的结果告诉主线程,否则就失去了线程的意义。那么,Handler就是担任这个消息传递的角色。在比较正式的名词解释中,Handler是线程之间消息传递与处理的机制。

2015-11-15 17:15:55 570

原创 野人学Android第二弹——自定义ListView第二课

在上一篇博文中,我提供了一种自定义ListView的思路,如果你成功了,那么恭喜你。在兴奋之余,不知道你有没有觉得哪里不对劲。如果一个app中多次使用不同的ListView,那么意味着要写N个Adapter,也就是说要写4N个方法,是不是觉得脑袋都大了?“懒”是程序员的通病,也是所有程序员的最终目标。今天,在上一篇博文的代码基础上,进行一些优化,方便大家以后快速开发。这是getView

2015-11-08 16:15:07 374

原创 野人学Android第二弹——自定义ListView第一课

在APP界,不管是微信还是微博,都会使用到ListView这一基本的控件,所以学好ListView有多么重要。所谓“工欲善其事必先利其器”,要想开发更加优质的APP,那么就需要花点精力研究下ListView啦。本节课,我想探讨下ListView的自定义原理,以不变应万变。-----------------------------分割线------------------------------

2015-11-08 10:35:09 357

原创 第二波Android的心得即将袭来~

博客有一个月没有更新过了,在这一个月的时间里,一直潜心“闭门造车”,现在算是基本完成了。我开发了一个app,基本的功能是通过app收集信息,上传到web端。简单的几个字,我用了一个月的业余时间来写完。因为当你开始一件从未做过的事情的时候,你会发现全都是问题,只能通过问百度,试错修改,不断摸索出一条属于自己的答案。在此期间,曾经想过放弃,因为这个app很有可能不能被其他人认可。但是我坚持了下来,

2015-10-30 23:24:58 209

原创 野人学Android基础篇之网络通讯第二课--本地apache服务器与Android的连接

写在开头按照现在流行的说法,我只能算个野生程序员。没有上过专业的课,也没有受过专业的训练,当然也没有专业的工作背景,所以面对网络上传统的Android连接Apache Tomcat的方式,我是看不懂的,因为毕竟要涉及到JSP的知识。而我有php的开发经验,所以最开始想到的是利用php来编写服务器语言。一旦选择了php,那么就要放弃现成的Apache Tomcat服务器,去百度apache连接A

2015-09-26 10:57:08 2075

原创 野人学Android基础篇之网络通讯第一课--HttpUrlConnection的使用

写在开头既然选择远方,那就风雨兼程~因为工作的原因,这半个月断断续续学着Android,因为一些技术问题,迟迟没有写博文总结。直到昨天,我才解决了网络通讯的一个难点,现在才提笔开始网络通讯的第一课。对于此课程,我的计划是两节课:第一课,HttpUrlConnection的使用;第二课,本地Apache服务器与Android之间的连接。--------------------------

2015-09-25 22:04:38 440

原创 野人学Android基础篇之数据存储第一课--SQLite的使用及注意点

为了应对app开发中对数据存储的不同诉求,Android为我们提供了多种方式,比如SharedPreference、文件存储、SQLite等本地方式。如何启动增删查改,其中的注意点如何查看数据表

2015-09-13 00:20:42 448

原创 野人学Android基础篇之异步任务第一课--AsyncTask原理简介及例子

在Android开发中,有一个概念不得不讲,那就是异步任务。用通俗的话来讲,就是同时进行多项任务,但是有主次之分。打个比喻,就是你在炒菜的同时,也可以用电饭锅煮个饭,如果你要等饭煮好才去炒菜,那么你的午饭就会往后延迟半个多小时了。今天要给大家介绍的是AsyncTask这个异步类,这是一个轻量级的异步类,对于Android初学者来说是比较好理解,也是比较容易上手的。先来一张原理图,如下:

2015-09-07 12:40:58 376

原创 野人学Android基础篇之四大组件第一课--Activity的Intent传递

在web编程中,get和post充当html之间的信使。那么在Android中谁充当Activity的“信使”呢?答案是Intent!那Intent如何使用呢?按照目的不同,分成三种方式:1.无参数传递2.参数传递3.返回传递一、无参数传递这种传递方式有点像web编程中的网页跳转,从一个页面转到另一个页面,不带一个参数。原理图如下:从这个原理图中可以看出,从A页

2015-09-05 13:46:37 583

原创 野人学Android基础篇之四大组件第一课--Activity的生命周期

1.Activity的生命周期包括哪些,含义是什么2.OnCreate 的参数savedInstanceState是什么,怎么用3.Bundle是一个什么样类型的对象?

2015-09-03 08:35:24 441

原创 野人学Android基础篇之初探UI控件第六课--ListView和他的adapter们(四)

ListView的监听机制

2015-08-31 12:57:51 385

原创 野人学Android基础篇之初探UI控件第六课--ListView和他的adapter们(三)

SimpleAdapter的使用SimpleAdapter是将图文信息展示在ListView上的适配器,其实现的步骤跟ArrayAdapter差不多,如有疑问,请看上一篇博文。此博文,主要讲以下几个问题:1.ListView的自定义xml2.SimpleAdapter中数据结构3.SimpleAdapter的参数意义一,自定义ListView的xml文件在讲自定

2015-08-30 21:03:08 471

转载 Android之 ListActivity 的使用和在 ListView中添加图片文字(ListActivity与Activity的区别)

ListActivity简单的说就是ListView和Activity的结合,跟ListView和Activity组合实现的没有什么很大的差别,主要是比较方便。但在实现时,有几点要注意。            1、ListActivity可以不用setContentView(R.layout.main),它默认是LIstView占满屏。            2、如果想在屏幕中显示

2015-08-30 21:00:15 425

原创 野人学Android基础篇之初探UI控件第六课--ListView和他的adapter们(二)

ArrayAdapter

2015-08-30 14:50:43 418

转载 Java栈与堆

Java栈与堆----对这两个概念的不明好久,终于找到一篇好文,拿来共享1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优

2015-08-29 19:10:20 210

转载 Java集合类详解

集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口  Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(E

2015-08-29 17:26:06 214

原创 野人学Android基础篇之初探UI控件第六课--ListView和他的adapter们(一)

ListView原理ListView是什么控件呢?有图有真相,来看一下。如图所示,ListView就是将数据以行的形式展示出来。ok,来分析一下,要实现ListView,肯定需要数据,然后需要ListView控件。上图只展示了最简单的ListView,在开发中会遇到更加复杂的数据,而ListView是比较固定的,要想在ListView上展示复杂的数据,此时就需要一个适配器来将复杂的

2015-08-29 10:34:58 367

原创 野人学Android基础篇之初探UI控件第五课--RadioGroup

在对RadioGroup介绍之前,先来一张图片。如果看过我上一篇的博客,应该知道“正方形+文字”是什么控件,对,就是CheckBox,那上面“圆形+文字”的是RadioButton控件。之所以将这两个控件放在一起,是因为两者有着相似之处,但也有不同之处,这样的比较会加强对这两个控件的印象。相似之处,都是记录选择状态的控件。不同之处,CheckBox可以通过点击记录“选中”和“未

2015-08-28 22:10:45 464

原创 野人学Android基础篇之初探UI控件第四课--CheckBox

CheckBox,顾名思义,就是选择的盒子,为了让大家更加直观一下,截了一下图片,如下:如图所示,就是左边带一个正方形,右边带文字说明。这就是今天的主角--CheckBox,具有选中和未选中这两种状态。在日常开发中,CheckBox的应用很广泛,比如登陆账号的时候,你会遇到“是否记住账号和密码”这一功能,其中的实现就是利用到CheckBox。关于CheckBox这一控件,主要提两点

2015-08-28 12:36:47 357

原创 野人学Android基础篇之初探UI控件第三课--Button

如果你有一点web开发的经验,对于Button的click事件,应该很好理解。如果没有,那么记住Button的最大作用就是点击。在Android开发中,实现Button的click事件要分成两步,第一步是监听到click事件,第二步才是执行click事件。对于第二步,理解起来没有什么难度,难就难在第一步。电脑是非常笨的,需要一套Button的监听机制来保证click事件的顺利进行。我总结了一下

2015-08-25 22:15:50 382

原创 野人学Android基础篇之初探UI控件第二课--ImageView动态赋值

上一篇博文讲到的src和background两个xml属性是ImageView的图片引用属性,那么相对应的动态赋值,就应该针对这两个属性进行的方法。如下:src        ---------->              setImageResource(int resid)background    ---------->              setBackgroundRe

2015-08-25 11:08:43 1640

原创 野人学Android基础篇之初探UI控件第二课--ImageView静态赋值

ImageView的静态赋值和TextView的实现逻辑差不多,只是ImageView的xml属性与TextView有点不同。先来看一段代码,如下:<ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="matc

2015-08-25 10:57:18 919

原创 野人学Android基础篇之初探UI控件第一课--TextView动态赋值

除了上节课中讲到的TextView静态赋值,还有一种更加灵活的赋值方法–动态赋值。在app的运行过程中,根据程序的需要可以随时改变TextView的值。其实现的基本逻辑可以归纳如下: 1.通过id获取我们要操作的TextView控件 2.使用一些方法可以赋值给TextView控件很简单的逻辑,就好比通过书的名字找到我想要找的书,然后在书上写上我想要写的东西。具体的代码实现如下:public cl

2015-08-24 21:28:01 9040

zxing核心包

zxing的核心代码,有了它,才能使用zxing的二维码功能。

2015-11-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除