- 博客(55)
- 资源 (32)
- 收藏
- 关注
原创 Android Studio 问题解决记录
问题1:提示Gradle version 2.10 is required. Current version is 2.8. If using the gradle wrapper, try editing the distributionUrl in /Users/lee/Downloads/AS Demo/MiLaDouSupplierApp/app/gradle/wrapper/gradle
2016-07-06 20:00:02
1234
原创 Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)
前言:经常会看到有一些app的banner界面可以实现循环播放多个广告图片和手动滑动循环。本以为单纯的ViewPager就可以实现这些功能。但是蛋疼的事情来了,ViewPager并不支持循环翻页。所以要实现循环还得需要自己去动手。自己再网上也找了写例子,本博文的Demo是结合自己找到的一些相关例子的基础上去改造,也希望对读者有用。 Demo实现的效果图如下:
2015-05-08 12:59:39
184554
20
原创 自定义ViewGroup
本博文Demo下载地址:http://download.youkuaiyun.com/detail/stevenhu_223/8527997 前言:很久之前写了一篇文章《基于第三方开发Android锁屏》,里面有用到自定义ViewGroup(StarLockView类),今天回头去看看当初写的这个类,简直惨不忍睹。用了一大堆变量,相关视图也在代码中创建,代码健壮性也有待提高。今天就把当初写的这个S
2015-03-24 12:35:57
2019
1
原创 Android中的xml、json格式数据解析
转载请注明出处: 本博文相关的Demo下载链接: 前言:在开发Android第三方App应用的过程中,特别是涉及到网络请求的App,都会涉及到解析后台返回的数据。而后台返回的数据无非就是两种格式,xml和json格式。如何更好的方便有效的解析这些后台返回的数据,对我们开发者来说是很重要的。接下来将介绍以下几种笔者比较常用的数据解析方式。 一。simple-
2015-01-08 13:22:13
16524
原创 解决Android单个dex文件不能超过65536个方法问题
当我们的项目代码过大时,编译运行时会报Unable to execute dex: method ID not in[0, 0xffff]: 65536)错误。当出现这个错误时说明你本身自己的工程代码中含有的太多的方法,或者你的工程lib文件夹下引用的第三方插件jar包有太多的方法,这两者的方法加起来已经超过了65536这个数目。而谷歌规定单个dex文件中的方法不能超过65536的限制。 那
2014-11-21 15:58:33
38636
5
原创 Android 百度地图开发问题----解决地图有时候加载不出来问题
相信很多人在开发百度地图的时候会出现百度地图有时候会加载不出来,只显示网格图。 这个问题究其原因就是申请百度key的时候填写的SHA1
2014-08-01 11:42:46
26397
2
原创 FusionCharts报表在Android上的实现
最近Android这边报表方面的实现一直在考虑是否需要谷歌提供的第三方库achartengine来实现,但考虑到和IOS的一致问题
2014-07-18 12:41:54
7188
1
原创 Launcher源码浅析-----涉及Workspace界面资源加载重要类和资源文件简介
前言:Workspace界面加载属于Launcher资源加载的一部分,总体来说,Workspace上的加载主要还是解析default_workspace.xml文件中定义的资源。Launcher启动后在Workspace界面和Hotseat上看到的默认显示的应用图标、小部件等都是在default_workspace.xml文件中定义的。本博文主要介绍Workspace和Hotseat界面如果通过解
2014-05-07 11:53:37
5586
原创 Android开发学习网址记录(更新中....)
eoe移动开发者社区:http://www.eoe.cn/code/android.html 开源中国社区:http://www.oschina.net/ ItEye:http://www.iteye.com/ 360doc图书馆:http://www.360doc.com/index.html java虚拟机学习:http://zhanjia.iteye.com/blog
2014-04-01 11:37:10
1502
原创 人生抉择
转眼间工作已经将近两年,两年的时间说长也不长,说短也不短。就这样磕磕碰碰的就过去了。想想过去的这两年,我扪心自问,我得到了什么?又失去了什么?我不清楚,我只知道我当初毕业时选择了android,而不是选择从事自己大学所读专业的工作是正确。很庆幸,刚毕业的时候就可以选择自己相对感兴趣的行业。虽然这个路程比较艰难,但是自己还是熬过来了。而现如今,自己却又不得不做出人生的又一次抉择。总之,这段时间只能用
2014-03-18 23:40:04
2869
7
原创 Launcher源码浅析-----Launcher启动时的资源加载
前言:Launcher在刚启动时,会在UI主线程之外创建一个异步消息处理线程来执行相关资源的加载。资源的加载分为两部分,一部分是加载需要在Workspace和Hotseat中显示的资源(应用程序对应的快捷方式、文件夹、widget),另一部是加载需要在菜单界面中显示的资源(所有应用、小部件)。 一. Launcher启动时资源加载机制 在分析Launcher资源加载之
2014-02-19 16:53:00
4154
1
原创 Android中的软引用(SoftRefrerence)和弱引用(WeakReference)
在Android开发中,基本上很少有用到软引用或弱引用,这两个东东若用的很好,对自己开发的代码质量的提高有很打的帮助。若用的不好,会把自己给坑。所以,在还没有真正的去了解它们之前,还是慎用比较好。 对于这两者,先作个小总结如下: 1. SoftReference:软引用-->当虚拟机内存不足时,将会回收它指向的对象;需要获取对象时,可以调用get方法。 2. WeakR
2014-01-16 16:26:27
34818
3
原创 ContentProvider单元测试
Android单元测试框架是在Java单元测试框架的基础上扩展的,Android四大组件中的Activity、Service、ContentProvider都可以作为单元测试的Target进行测试。本文主要介绍了ContentProvider的单元测试。 1.建立测试环境 在前面的一篇文章《Android单元测试》中介绍的测试环境的建立是与Android工程独立的一种
2013-11-02 14:01:59
3818
原创 Android有用处理代码集锦-----分辨率相关
通过我们所说的屏幕分辨率如800x480、960x540等。这些分辨率的值是可以通过代码获取到的。要想知道自己的Android手机屏幕分辨率,可以通过下列的demo代码实现获取。 代码如下: MainActivity
2013-10-08 15:37:24
2339
原创 动态显示和隐藏状态栏
小米Launcher有一个细节上的功能效果:在长按桌面应用图标时,会隐藏状态栏,然后在状态栏原有的布局上显示卸载或删除的操作栏。放手后,操作栏隐藏,状态栏显示出来。也就是说,这个过程是涉及到对状态栏的动态操作的。 View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见
2013-10-08 15:21:05
76841
8
原创 Android手势源码浅析----手势识别
前言:手势识别在Android手势手势中是最重要的部分,基本上算是手势的精髓;手势识别的算法有点类似人脸识别;手势识别的利用很普遍,涉及到用户安全操作的领域比较多;比如可以通过手势识别来实现手机的解锁,安全启动用户设置的用户模式的应用等;
2013-09-06 00:58:25
9533
2
原创 Launcher源码浅析-----Launcher自定义布局属性
在上一篇文章Android源码Launcher模块浅析-----Launcher布局>中,对Launcher的总布局文件Launcher.xml进行的分析。在分析Launcher布局文件代码过程中,会看到一些以launcher:开头而不是以android:开头的布局属性的定义。如launcher.xml文件中id为workspace的视图布局,如下代码:... <com.andro
2013-08-18 22:05:19
8994
原创 Launcher源码浅析-----Launcher布局
前言:Launcher是Android的系统应用,在手机开机后第一个见到就是Launcher。用户通过Launcher基本上可以从整体上纵观手机中所存在的所有应用;Android源码中的Launcher分两个主要界面,一个是WorkSpace界面,就是我们俗称的桌面;另一个是AppsCustomizePagedView界面,就是我们俗称的菜单界面;Launcher可以说是Android系统中比较重
2013-08-10 00:39:33
17987
1
原创 Android手势源码浅析-----手势的保存和加载(GestureLibrary)
前言:在《Android手势源码浅析------手势的形成(Gesture)》文章中,介绍了手势Gesture的形成。那么,有的时候,用户绘制的手势是需要保存的,以便用户需要时加载出来进行相关的手势识别处理;接下来将结合一个Demo重点介绍源码中手势的保存和加载流程机制; 一. 关于手势保存和加载的Demo 手势保存概要: 1. 在绘制完
2013-08-04 16:45:17
9575
原创 解决android4.0系统中菜单(Menu)添加Icon无效问题
在Android4.0系统中,创建菜单Menu,通过setIcon方法给菜单添加图标是无效的,图标是显示不出来的,2.3系统中是可以显示出来的。这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 MenuBuilder,该类的部分源码如下:public class MenuBuilder implements Menu {...private boolean mOptionalIc
2013-08-01 20:00:05
25946
6
原创 Android手势源码浅析------手势的形成(Gesture)
前言:上篇介绍了提供手势绘制的视图平台GestureOverlayView,但是在视图平台上绘制出的手势,是需要存储以及在必要的利用时加载取出手势。所以,用户绘制出的一个完整的手势是需要一定的代码机制来完成存储以及必要时加载取出的;那么,在源码中Gesture这个类就是用来描述完整的手势的。一个Gesture就是用户手指在触摸屏上绘制形成的不规则几何图形(A gesture is a hand
2013-07-27 17:57:32
6515
原创 Android手势源码浅析-----手势绘制(GestureOverlayView)
前言:Android关于手势的操作提供两种形式:一种是针对用户手指在屏幕上划出的动作而进行移动的检测,这些手势的检测提供android提供的监听器来实现;另一种是用户手指在屏幕上滑动而形成一定的不规则的几何图形(即为多个持续触摸事件在屏幕形成特定的形状);本文主要是针对第二种手势的绘制原理进行浅析,我们姑且称它为输入法手势; 1. 输入法手势 在Android源码中,
2013-07-25 00:40:18
23408
8
原创 C++函数与java函数菜鸟级的对比理解
Android源码底层的代码实现文件有.h、.c、.cpp后缀名文件,它们分别是c、c++程序代码文件和头文件。下面就以一个小例子来对比理解它们之间关系。 1. 在java中,假如我要实现一个函数getHeight(int height)返回的是传入的height 1). 在A.java文件中声明和定义函数的实现,代码如下: public class A
2013-07-24 08:57:08
1364
原创 Java反射机制知识点
前言:我们知道,类和类的成员变量及方法都是要求有权限控制的(public、protected、private);而当类中的信息封装为私有时,外部对该类中私有的信息是没有访问权限的,也就是说当该类里的内容信息均受private权限控制时,外部想要获取和处理该类里的私有信息是几乎不可能的;但是,有时候这种需求是有的,而当我们非得需要去动用别的类里封装的私有信息时,java的反射机制就起到了非常关键的作
2013-07-14 18:23:42
16002
1
原创 基于第三方开发Android锁屏
在Android系统锁屏模块开发中,有两种形式的开发:一种是基于源码开发;另一种是基于第三方开发。 基于源码开发还是比较具有危险性的,而且相对于第三方开发来说要考虑的问题比较多,而且移植后可能会出现问题,不便于维护。 当然,基于源码开发锁屏要做的工作相对于第三方开发锁屏要做的工作就少了很多,比如在时间和日期的获取和实时更新、充电时显示的电量状态、运营商名字的显示等等。这些在源码中是已经
2013-07-11 23:12:54
36028
42
原创 Java基础学习笔记
时刻提醒自己:基础是最重要的,也是最容易被轻视和遗忘的,基础过硬才能更深入地去学习!1. 子类new对象时,调用父类构造函数,也就是说,子类创建对象时,父类的对象也同时隐式创建(父类的构造函数调用之前,父类中相关的成员变量已完成初始化)。 2. 关键字private和final对函数的修饰是等同的,也就是说private修饰的方法,实际上等同于final修饰的方法。(而且这些被final或
2013-07-07 23:21:34
1247
原创 Android中Path类的lineTo方法和quadTo方法画线的区别
但我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的lineTo和quadTo方法实现的绘制线路形式是不一样的; 1. Path--->quadTo(float x, float y) : 该方法实现的是当我们不仅仅是画一条线而且是画弧线时会形成平滑的曲线,该曲线又称为"贝塞尔曲线"(Bezier curve),下面以一个Demo来结合理解quad
2013-07-02 23:42:54
79777
4
原创 Android中Parcelable接口的应用
在前面的一篇文章基于Android应用开发的跨进程通信实现(IPC)>介绍了通过跨进程实现基本数值类型(String)的传递,但是有的时候,需要跨进程实现传递相对较复杂的数据(比如图片之类的资源),而不仅仅是基本数据。那么,实现复杂数据跨进程的传递使用呢?这时候就不得不把Parcelable接口搬出来了,假设我们需要跨进程的数据都包装在一个我们自定义的类里面,那么这个类就需要实现Parcelabl
2013-06-30 22:47:56
9044
原创 实现一个视图在固定圆圈内移动
我们知道,在android4.0系统原生的滑动锁屏中,用户可以拖动中心的图标在固定的圆圈内移动。本文将以一个小Demo来实现类似这种绕着固定圆圈内拖动图标。 这个Demo有两个类: 1. MainActivity:继承Activity,主要用来承载MainView这个自定义ViewGroup类; 2. MainView:自定义ViewGroup,继承ViewGroup
2013-06-16 17:01:46
3100
原创 Android快捷开关实现
在Android源码中,提供的快捷开关相对是比较少的,Android4.0系统默认提供的桌面快捷开关AppWidget上只有5种开关(分别是Wifi开关、蓝牙开关、GPS开关、同步开关、亮度设置开关)如下图所示: 当然,有时候就需要开发实现承载更多的快捷开关的AppWidget来实现用户体验,所以,本文主要针对这些开关的主要代码实现来重点解决开发这些快捷开关。 本
2013-06-13 14:48:25
25650
4
原创 枚举类型的理解和应用
相信学习java的人,在平时开发时是很少用到枚举。说实在的,本人对枚举类型一向都是云里雾里,直到最近在看android源码时,才微探到其中的妙处。 接下来就以一个例子结合枚举和手势知识点的应用开发来讲解枚举类型在android应用开发中的活用(很多知识点都是借鉴android源码,学习android,源码是最好的教程,对开源致敬!)。 示例代码如下:packa
2013-06-10 22:51:22
5240
原创 枚举类型特别实用的特性(在switch语句内使用)
枚举类型可以在switch语句内使用,如下代码: 1.枚举类 public enum Season { SPRING, SUMMER, FALL, WINTER} 2.switch语句内使用:public class EnumTest { private Season season; public EnumTest
2013-05-04 23:59:22
12491
原创 Git和Repo管理使用简要介绍
在Linux平台下进行Android系统项目开发时,需要git或repo管理。 一. Git和Repo的区别: 1. Git:Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 2. Repo: Repo是谷歌用Python脚本写的调用git的一个脚本。主要是用来下载、管理Android项目的软件仓库(也就是说Repo是用
2013-04-22 11:28:02
68263
原创 基于Android应用开发的跨进程通信实现(IPC)
本文是基于上一文《浅析Android Binder机制》讲解的Binder机制,实现开发第三方应用跨进程通信。 所谓跨进程调用,在Android应用开发中,就是不同了两个应用程序进程之间的通信实现。 我们姑且将这个两个通信的应用程序进程区分为客户端和服务端。 下面就以两个简单的应用程序来了解如何实现Android应用开发的跨进程通信。 这两个应用的实现很简单,就是实现
2013-03-30 14:08:25
5861
原创 Android Binder机制----实现自定义的系统服务
一.基于源码分析Binder机制: Binder机制是android系统中实现跨进程通信(IPC)的一种重要机制。可以说,Binder机制在android系统中无处不在,所以,要研究android源码,学好Binder机制极其重要。 在学习Binder机制之前,我们先试着摸索一下系统中一些相关的涉及到Binder机制的代码。 首先,先看看SystemServer.ja
2013-02-04 16:49:59
14209
转载 Java程序员应该了解的10个面向对象设计原则
面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程
2013-01-29 23:10:10
1784
原创 android悬浮窗口的实现
当我们在手机上使用360安全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可见(多米音乐也有相关的和主界面交互的悬浮小窗口)。那么这种不受Activity界面影响的悬浮窗口是怎么实现的呢? 竟然它能悬浮在手机桌面,且不受Activity界面的影响,说明该悬浮窗口是不隶属于Activity界面的,
2013-01-16 21:16:36
178729
6
原创 浅析android锁屏开机绘制流程(基于android4.0源码分析)
最近大体看了一下android源码锁屏模块,顺便把自己的收获在此记录下来,希望对研究锁屏的同行们有所帮助(对于锁屏模块,本人也没什么时间去真正的深究,只是摸清了个大概,若有奇异和错误之处,恳请指出) 好了,废话不多说了。 Android源码模块锁屏大体分为两种: 1.LockScreen: 系统默认的锁屏,就是我们所常见的系统原生波纹解锁(涉及MultiWave
2013-01-10 21:55:36
7461
1
Android实现可轮播循环和手动滑动循环的广告界面
2015-05-08
Hanlder、HandlerThread、AsyncTask处理机制的相关Demo代码
2012-10-16
ActionBar应用开发相关代码
2012-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人