Android开发技术分享
文章平均质量分 79
我会在专栏中与大家分享在项目实践中的Android开发技术、难题和解决方案。以及我会发布一些开源代码和项目。希望和大家能在交流中实现共同进步。
乞力马扎罗的雪CYF
一只不孤独的猿。
展开
-
Windows配置Android开发环境全部资源下载及配置教程
由于总所周知的原因,我们访问Google的网站有一定的难度。不是不能访问,就是速度太慢,总之会浪费我们很多时间。真是苦了我们程序员了。现在我把在Windows下配置Android开发环境的所有资源上传到网盘上,供大家下载。(1)adt-bundle-for-windows:里面包含了Eclipse,其中Eclipse中已经集成了ADT和SDK,只要把文件夹解压后放到某个路径下就可以了...原创 2015-07-30 16:12:56 · 1924 阅读 · 0 评论 -
Mac配置Android开发环境全部资源下载
我于近日在苹果笔记本上全新部署了Android开发环境,包括ADT+Eclipse,Android Studio ,Genymotion。由于本身资源的下载浪费时间,又比较麻烦,所以为了给大家福利,我系现在给出相应软件的百度云盘的下载地址,分享给大家。(1)adt-bundle-for-mac:里面已经集成了Eclipse,Android SDK,ADT,只要解压到某个目录下面即可使用。...原创 2015-07-30 15:10:13 · 2226 阅读 · 0 评论 -
开源基于百度地图SDK的Android交通助手App
BaiduMap-TrafficAssistant 该项目是基于百度地图SDK开发的一款交通助手App,目前已经上线豌豆荚、魅族应用市场、搜狗手机助手等多个安卓应用市场。目前我决定开源该项目,为更多的安卓应用开发者或者基于百度地图SDK开发人员提供服务和便利。当然App中还有不少bug和可扩展的功能模块,也希望各位开发者为该项目贡献自己的code力量。项目地址:https://github.co原创 2015-11-03 02:10:19 · 9784 阅读 · 7 评论 -
开源基于Face++的Android应用刷脸神器(HowOld)
Android-HowOld 该项目是基于Face++开发的一款人脸识别App,通过照片可以检测性别、年龄和照片中人物数量。是模仿微软(Microsoft)的HowOld应用开发的类似App。目前已经上线豌豆荚、魅族应用市场、搜狗手机助手和联想市场等多个安卓应用市场。同时我决定开源该项目,为更多的安卓应用开发者或者想进行人脸识别类应用的开发人员提供服务和便利。当然App中还有不少bug和可扩展的原创 2015-11-03 21:43:03 · 9322 阅读 · 0 评论 -
Android中关于Activity/ActionBarActivity/AppCompatActivity的区分与理解
之前一直用Eclipse写Android,最近换到了Android Studio,因为毕竟是Google推荐的,也是未来的大势所趋,在使用过程中,遇到一些关于Activity的问题,下面来讨论下。 先说Eclipse。先新建项目,其中Minimum Required SDK 选择API14 :Android 4.0,(Icecream Sandwich),Target SDK和原创 2015-07-13 09:15:04 · 37672 阅读 · 13 评论 -
Android中如何解析XML数据
在如今的Android的网络编程中,JSON数据解析和XML数据解析已经成为两个最主要的网络数据传输方式。本篇文章先来聊聊XML解析。 XML在Android开发中非常重要,UI设计主要就是用XML进行编写,在此不再赘述。在Android的网络编程中,XML的目的主要是传输数据,而不是显示数据。并且XML没有预定义的标签,没有像HTML中的,这样的标签,而是由开发者自己定义的。下原创 2015-07-13 10:28:49 · 3021 阅读 · 0 评论 -
Android中如何解析JSON数据
在Android的网络编程中,JSON是比XML使用更为广泛的数据传输机制。在许多的http网络请求或接口调用中,返回的很多都是JSON。所以学会解析JSON是学会Android的基本技能。 简单介绍下JSON,JSON是轻量级的文本数据交换格式,独立于语言和平台。比XML更小,更快,更易解析。JSON是用键值对来保存数据的。JSON保存的值可以是数字、字符串、布尔值、数组和对象原创 2015-07-13 13:39:23 · 3382 阅读 · 0 评论 -
Android Studio中的Project和Module是个什么鬼?
之前一直使用Eclipse开发Android,觉得用的非常顺手,为了顺应时代的潮流,最近换成了Android Studio.AS刚刚使用,遇到不少问题。比如新建Project和Module的问题。 在Eclipse的一个Workspace工作空间中,开发者可以新建多个Android项目,如图所示:。其中每一个项目都是相互独立的,彼此不会造成任何影响。这每一个项目就是Project原创 2015-07-13 14:44:19 · 9353 阅读 · 0 评论 -
Android网络编程之Http请求服务器数据(GET方式)
进行Android应用开发,其中不得不使用到网络编程,最基本的就是向服务器发送Http请求,并接收从服务器返回的数据,该类数据一般为JSON或XML格式。 向服务器进行请求数据一般有GET、POST两种方式,两者基本类似,以GET居多。本文先讨论使用GET方式向聚合数据API发送请求,以获得手机号码归属地的信息。归属地查询的接口的请求示例为:http://apis.juhe.cn原创 2015-07-13 16:24:39 · 4578 阅读 · 0 评论 -
Android网络编程之Http请求服务器数据(POST方式)
Android中的网络请求主要有GET和POST方式。POST方式比GET方式更为安全,因为需要发送的消息不是嵌入在url中的,同时能比GET发送更多的数据。 本文讨论使用POST方式向聚合数据API发送请求,以获得手机号码归属地的信息。归属地查询的接口的请求示例为:http://apis.juhe.cn/mobile/get?phone=13429667914&key=您申请的KE原创 2015-07-13 17:06:40 · 3652 阅读 · 2 评论 -
解决Android Studio中某一个Module不能启动的问题
今天早上使用AS遇到很无语的问题,某一个Module app2无法启动,只能启动另一个app。但是右侧的绿色三角运行按钮可以点击,但就是无法运行。在右下角的Event Log中也只显示只有一个Session在Running。截图显示如下:。。 尝试了很多方法都没有办法。最后索性重启了AS。重启之后可以正常运行2个Module。截图如下:。 我原创 2015-07-14 09:25:14 · 3939 阅读 · 0 评论 -
Android中使用GSON包解析JSON数据(简单JSON)
之前一直使用Java自带的JSONObject,JSONArray来进行解析,在JSON嵌套不多,数据不大的时候还是不错的。但是对于大量的JSON数据来说,效率就比较低了。Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。使用了面向对象的思想,提高了JSON解析的效率。 需要解析的JSON数据如下(JSON数据我保存为"languages.js原创 2015-07-14 10:12:52 · 3773 阅读 · 2 评论 -
Android中使用GSON包解析JSON数据(复杂JSON)
之前讨论过用GSON解析较为简单的JSON,这次稍微增加一点难度。把JSON弄的复杂一点,使JSON变为2层嵌套,并增加了一些其他元素。代码中把language.json放到assets文件夹下,把GSON.jar放到libs文件夹下。如果用的是Android Studio,需要右键GSON,jar,选择Add As Lirbary,否则AS不能识别。Eclipse中不需要这个步骤。具体解析以下三原创 2015-07-14 14:35:35 · 4475 阅读 · 0 评论 -
Android中使用Volley开源库进行Http网络请求(GET方式)
在之前的Http网络请求中,我们一般使用输入流以及缓冲区的方式进行访问,然后从服务器获取返回的数据。代码行数近20行,而且网络操作是放在Thread线程中进行的,对于Java或者Android的线程还不是很了解的同学来说,理解可能会有一定的难度。 本篇文章将会讨论使用开源库Volley进行网络的GET请求。实现结果同之前程序,只是代码将会大大简化。Volley是Google官方发原创 2015-07-14 23:04:04 · 2468 阅读 · 0 评论 -
Android Studio中编码(乱码)问题的解决方案
在Android Studio中,无论是自己新建的项目,还是import的项目,亦或是从网络返回的数据,只要其中涉及中文,极有可能会出现乱码问题,导致在手机界面上显示达不到预期的效果。如下所示:。 解决方案如下:(1)打开FIle-->Settings-->Editor-->File Encodings,会出现以下界面:。 一般只要设置上方的IDE Enc原创 2015-07-15 00:08:41 · 10212 阅读 · 3 评论 -
Eclipse和Android Studio的偏好设置Preferences的导出与导入
很多同学都会碰到这样的问题,就是原先在自己的笔记本上进行项目开发,对于Eclipse和Android Studio中的各项设置已经非常熟悉和满意,如背景设置,快捷键设置,编码设置等等。如果此时需要到另一台公司电脑进行开发,必须重装Eclipse和Android Studio,如果现在对那些自定义设置重头开始配置的话,那就极为麻烦的,也是效率相当低下的。如果看到同事的IDE环境设置非常好,想要拿过来原创 2015-07-15 16:40:15 · 7875 阅读 · 0 评论 -
JDK与adb/android环境变量配置完整教程
在这篇文章中,主要解决一个在Java或者Android开发中第一步需要解决的问题,那就是环境变量的配置。由于这部分在网上有很多教程,参差不齐。我这里主要是对JDK与adb/android两者的环境变量进行汇总,并且针对每一类配置提供几种不同的实现方式。【1】JDK环境变量配置 JDK的安装目录为:C:\Program Files (x86)\Java\jdk1.7.0_45。J原创 2015-07-15 19:37:26 · 7125 阅读 · 1 评论 -
Android中使用Volley开源库进行Http网络请求(POST方式)
之前使用了开源网络请求库Volley进行了Http GET请求。这次我们讨论使用Volley进行POST请求。POST请求比GET稍微复杂一点点。可以认为是建立在GET的基础上。POST使发送的url更加简洁,安全,高效,使能发送更大量的数据。 该例子仍旧是对聚合数据的手机号码归属地进行请求,返回JSON数据,显示在TextView上。不要忘了在AndroidMenifest.xm原创 2015-07-15 21:19:31 · 2593 阅读 · 2 评论 -
Eclipse中设置ButterKnife进行注解式开发步骤
最近在进行Android注解式开发的学习,正在尝试用ButterKnife。ButterKnife的特点如下:(1)强大方便的处理View绑定和Click事件,简化代码,提升开发效率。(2)方便的处理ListView的Adapter里的ViewHolder绑定问题。(3)运行时不会影响App的效率,使用配置方便;(4)代码思路清晰,可读性强; 下面我在Eclipse中进原创 2015-07-15 22:54:13 · 5796 阅读 · 1 评论 -
使用ButterKnife注解框架实现View的点击操作
使用ButterKnife注解式框架可以简化代码的书写,尤其是对一些控件的操作。不再需要findViewById(...),setOnClickListener(...),内部类,实现接口等方法来设置View的监听器。使代码更为简洁高效。 Android中的控件统称为View。本案例将会选择Button来简单模拟View被点击的过程。具体实现代码如下:public cla原创 2015-07-15 23:50:33 · 5530 阅读 · 0 评论 -
Android中使用OnClickListener接口实现按钮点击的低级失误
今天写了几行极为简单的代码,就是想implements View.OnCLickListener.然后实现按钮点击操作。但是按钮却没有反应,找了五分钟还是没有结果。以下是我的代码,希望大家不要嘲笑:XML布局如下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android原创 2015-07-16 09:07:26 · 5837 阅读 · 7 评论 -
Android中使用4种方式实现按钮点击操作
在Android开发中,对控件的操作是最基本的技术,尤其是对按钮的点击操作。我以下总结了4种按钮点击的实现方式。与大家分享,希望大家批评指正。(1)匿名内部类实现这种方式是最简单的实现,一般刚开始学习Android或者学习基于用户界面的开发,该方法是必学的。实现代码如下:public class MainActivity extends Activity { privat原创 2015-07-16 10:22:23 · 3885 阅读 · 0 评论 -
Android中使用Handler机制更新UI的三种解决方案
最近想把学习Android过程中的Handler使用经验写下来,供自己以后查看,也与大家一起分享。 使用Handler其实不得不与Android中的线程或者说Java中的多线程扯上关系。本篇文章只会用到最基本的线程使用,不会涉及太难的,关于Android的线程我们以后再讨论。在Android中每新建一个Activity,该Activity(理解为界面)就是一个线程,是一个主线程,也原创 2015-07-16 13:44:42 · 13890 阅读 · 1 评论 -
最快Android模拟器Genymotion的安装与使用完整教程(多图,慎点)
在这开发Android的一段时间内,一直是使用真机进行测试的,使用过的机子包括华为U8825d,红米,MX3.深知Android的最大问题就是碎片化,就是各种适配问题,甚是头疼。也是一直听说Genymotion的快速与强大,也是亲眼见过别人使用Genymotion,完全把Android自带的AVD碾压的渣都不剩。所以今天将进行Genymotion的安装与使用,强烈建议大家使用Genymotion。原创 2015-07-16 21:08:32 · 8485 阅读 · 2 评论 -
使用正则表达式判断字符串是否为MAC地址
今天Boss给了一个小任务,要求给定一个字符串,判断该字符串是否是MAC地址,并用Java和正则表达式实现。于是我顺便百度了下MAC地址,并在cmd下使用getmac获取本机的MAC地址,了解了一点后,就用Java实现了。为了方便测试与输入输出,选择使用Android作为UI交互。反正都是用Java,对于这个问题,一个Java项目和Android区别不大。 首先看一个MAC地址:4原创 2015-07-16 23:25:41 · 23785 阅读 · 0 评论 -
Eclipse开发Android,Java项目快捷键技巧
工欲善其事必先利其器,在IDE中开发软件很重要的一个步骤就是快捷键的设置,设置了自己最熟悉的快捷键,开发效率将会大大提升。该篇帖子说说我的Eclipse快捷键设置。我常用的Eclipse快捷键如下:(1)Ctrl+C Ctrl+V:这个不说了,你懂的;(2)Ctrl+原创 2015-07-17 08:29:18 · 2615 阅读 · 1 评论 -
Genymotion不能成功开启Android5.0模拟器的解决方案
今天在Genymotion中新建了一个模拟器,想要尝试一下Android5.0也就是Android L的一些新特性,但是遇到一个问题,就是模拟器无法启动的问题。新建的模拟器的配置如下:。可以看到这是Android 5.0,API 21 的Android模拟器。处理器数量为4个,内存为1024M。其他的没有什么特别之处。 点击运行模拟器,出现警告,并且模拟器原创 2015-07-17 13:34:55 · 4990 阅读 · 0 评论 -
Android Studio中如何引用图片资源
随着不断接触Android Studio,越来越发现和Eclipse有着巨大的区别。无论是表面的目录结构,还是内在对各种资源的管理。本篇就来聊聊Android Studio中如何来显示图片, 以及与Eclipse中的区别。 在Eclipse中根据图片的像素大小把,png或.jpg的图片放在drawable文件夹下,如drawable-hdpi,drawable-ldpi,draw原创 2015-07-17 16:58:40 · 17983 阅读 · 1 评论 -
Eclipse中使用Android5.0新特性CardView
在去年Google发布了代号Android L(版本号Android5.0,SDK为API 21)后,Android的新特性就为开发者所津津乐道,尤其是CardView和RecyclerView。使界面设计更加美观,更加方便。本篇文章来聊聊如何在Eclipse中使用Android L新特性CardView来进行开发。由于大家手上一般都没有Android 5.0设备,所以最好装好Genymotion原创 2015-07-17 20:58:54 · 3149 阅读 · 0 评论 -
Android Studio中使用Android5.0新特性CardView
我在之前一片博客中讨论了如何在Eclipse中引入cardview库,并使用CardView进行设计。在Eclipse中还是比较麻烦的。现在研究在AS中使用Android L的新特性CardView,就相对方便了,毕竟都是Google弄的,所以考虑的比较周全。具体步骤如下:(1)新建一个Project。在Gradle Scripts目录下打开第二个build.gradle(Module:a原创 2015-07-17 22:33:14 · 2756 阅读 · 0 评论 -
Eclipse中安装Genymotion插件解决方案
在使用该篇文章的时候,你的电脑上应该已经成功安装了Genymotion模拟器。具体如何安装Genymotion,可以参考我的另一篇博客《》原创 2015-07-20 09:04:10 · 5918 阅读 · 0 评论 -
Android Studio中安装Genymotion插件解决方案
之前讨论了在Eclipse中安装Genymotion插件,感觉还是比较麻烦的。现在我们要在Android Studio中安装Genymotion插件,比在Eclipse中方便多了。前提是你已经在电脑上安装了Genymotion。鉴于Eclipse的经验,在这里我们不介绍离线安装jar包的方式,也不推荐,现在而是使用在线的方式。具体步骤如下:(1)在Android Studio中选择File--原创 2015-07-20 10:12:52 · 4442 阅读 · 1 评论 -
Genymotion出现Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE错误解决方法
今天在Genymotion上运行以前的一个项目(libs中有多个SDK和so文件)时,出现以下错误:Console控制台中:Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE Logcat中: Could not open '/sys/class/power_supply/genymotion_fake_path/prese原创 2015-07-20 16:27:48 · 2704 阅读 · 0 评论 -
使用百度地图API进行Android地图应用开发(Eclipse)
随着基于位置的服务的兴起,地图类App呈现爆发趋势。随着而来的是地图供应商开放大量的API,供开发者开发基于PC或者移动端的应用程序。现在我们研究使用百度地图SDK进行Android项目的开发。本文讨论如何导入百度地图SDK。(1)首先要有一个百度账号,账号可以去百度官网申请,然后登陆:http://developer.baidu.com/map/index.php?title=%E9%A6%原创 2015-07-21 09:14:10 · 12810 阅读 · 11 评论 -
从Eclipse到Android Studio:Android项目如何进行迁移
一开始我们学习Android开发,基本上都是从Eclipse上开始的,随着Google推出Android Studio,这一情况慢慢有了改变。未来很长一段时间将会呈现Eclipse和AS相互存在的情况,并且使用AS开发将会占据优势。所以如何把之前在Eclipse中开发的项目移植到AS中,变成一个非常重要的问题。本文将会来解决这个难题。具体实现步骤如下:(1)首先在Eclipse中创建一个And原创 2015-07-21 13:50:02 · 2265 阅读 · 0 评论 -
使用Github依赖库实现Android5.0新特性——CardView
之前自己使用support-v7下自带的cardview实现了CardView效果。后来在github中发现了有人写好了很好的库支持,完美实现了CardView的向下兼容。不再需要support-v7,实现起来更为方便。参考的Github的主页为:https://github.com/gabrielemariotti/cardslib 。感谢博主。具体实现步骤如下:(1)在Andro原创 2015-07-22 10:47:59 · 3448 阅读 · 0 评论 -
Android开发基础之菜单键的使用
Android手机一般来说在正面会有三个实体键或者虚拟键,分别是返回键,Home键,菜单键。今天我们来学习如何使用菜单键。菜单键一般会有多个条目Item,点击不同的Item会有不同的响应。具体实现步骤如下:(1)创建项目的时候,一般会自动 创建两个方法,分别是onCreateOptionMenu()和onOptionasItemSelected(),这两个方法主要是对菜单键进行操作的方法,是进原创 2015-07-30 22:20:49 · 2617 阅读 · 0 评论 -
Android开发基础之动态添加菜单项
我们在之前的一篇博客中使用了在xml中写死了菜单项Item,然后在java文件中进行响应。但是这种菜单项显得非常不灵活,不能动态的增加删除Item。其实在Android中可以在java文件中动态增加菜单项,提高整个App的灵活性。具体实现如下:(1)在重写方法中onCreateOptionsMenu()方法中写入动态添加菜单项的代码: @Override public boo原创 2015-07-30 22:37:33 · 6262 阅读 · 0 评论 -
Android开发基础之AlertDialog的单选对话框的使用
有时候我们有这样的需求,就是弹出一个单选对话框,然后让用户在对话框中进行选择,如性别的选择,年龄的选择等等。而在Android的AlertDialog中封装了单选对话框,完全能胜任这个需求。具体实现如下:(1)声明一个全局数组,作为单选对话框中的每一项; String[] single_list = {"菜单一", "菜单二", "菜单三"};(2)为按钮添加响应事件,在该响应事原创 2015-07-30 23:00:17 · 11068 阅读 · 1 评论 -
Android开发基础之AlertDialog的列表对话框的使用
AlertDialog对话框有四种不同的形式,确认对话框,单选对话框,多选对话框,列表对话框,今天我们来简单实现一下列表对话框。列表对话框类似于在一个对话框中放了一个ListView控件一样。对于其中的每一项,都可以进行点击响应操作。实现步骤与单选对话框很像,具体步骤如下:(1)定义一个字符串数组,用来表示列表中的每一项: String[] list_String = {"菜单一", "菜原创 2015-07-31 00:16:13 · 4166 阅读 · 0 评论