- 博客(238)
- 资源 (17)
- 问答 (1)
- 收藏
- 关注
原创 Android AsyncTask异步基础介绍,多实例下并行分析
目录前言一、AsyncTask基础二、使用步骤三、注意事项1、关于 生命周期2、 关于 内存泄漏3、 线程任务执行结果 丢失四、案例:AsyncTask下载文件五、多实例并行前言Async | Taskasync[æˈsɪŋk]abbr....
2017-05-09 12:11:39 1783
原创 Android HTTP协议请求网络(三)之HttpURLConnection方式
Android HTTP协议请求网络(一)之认识探索Android HTTP协议请求网络(二)之HttpClient方式githup练习demo地址:https://github.com/aiyangtianci/NetworkRequestDemo一、介绍在Android API Level 9(Android 2.2)之前只能使用DefaultHttpClient类发送http请求。Defau...
2017-05-08 16:49:44 4756 1
原创 Android HTTP协议请求网络(二)之HttpClient方式
Android HTTP协议请求网络(一)之认识探索Android HTTP协议请求网络(三)之HttpURLConnection方式githup练习demo地址:https://github.com/aiyangtianci/NetworkRequestDemo一、基础介绍:1、HttpClient是Apache开源组织提供的HTTP网络访问接口(一个开源的项目),从名字上就可以看出,它是一个...
2017-05-08 15:01:46 5115
原创 Android HTTP协议请求网络(一)之认识探索
Android HTTP协议请求网络(二)之HttpClient方式Android HTTP协议请求网络(三)之HttpURLConnection方式gitHup整合Demo地址:https://github.com/aiyangtianci/NetworkRequestDemo一、HTTP协议初级探索:1、HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”...
2017-05-08 14:39:57 1829
原创 TCP/IP 协议族,三次握手四次挥手图解
目录一、TCP/IP 协议族1、Http(HyperText Transfer Protocol) 超文本传输协议。2、WWW(World Wide Web)万维网。3、TCP/IP 协议族包含Http协议。4、IP位于网络层。5、TCP位于传输层,为字节流服务。二、TCP 协议格式(1)源端口、目的端口号(2) 序号(3)确认号(4) 数据偏移(5...
2017-05-04 19:21:54 2986 2
原创 Java 抽象类、普通类、接口的区别——值得你一看的干货
且不说会有很多人合作一起写一个程序,哪怕还是你一个人写,也保不住有忘记的时候,那时候编译器不报错,茫茫码海上哪找错误去面向对象说到底就是方便你思考,易扩展、易维护管理,硬要说没必要,整个面向对象都没必要了,C语言有什么干不了的呀,运行效率还高。抽象的概念是由具体概念依其“共性”而产生的,把具体概念的诸多个性排出,集中描述其共性,就会产生一个抽象性的概念。所以,在高级语言上,一个类只能继承一个类或抽象类,正如人不可能同时是动物类又是植物类,但是可以实现多个接口,例如,吃饭接口、呼吸接口等。
2017-05-04 16:26:31 44261 30
原创 Java 重写和重载区别——面向对象的多态性分析
前言我们知道面向对象主要是封装、继承和多态,重写和重载都有面向对象的多态性,而一字相同,区别大不同。重写是子类继承父类中方法,属于动态多态性。重载发生在同一个类中方法名相同参数个数或类型不同,且与返回值无关,属于静态多态性。调用被重载过的方法可以大大减少代码的输入量,根据传递不同的参数就可以决定不同的功能或返回值。重写和重载会让我们在实际开发中代码结构更加清晰简洁。一、特性
2017-05-04 15:29:07 2248
原创 Java 源码出发彻底搞懂String与StringBuffer和StringBuilder的区别
导读本篇所讲的内容是java字符串相关的基础知识点。从源码、原理结合案例去剖析知识点,抱着尽量把问题搞明白搞懂的目的,需静心仔细看每一句每一字。一、String介绍源码定义:public final class String implements java.io.Serializable, Comparable, CharSequence { ...}可以看到
2017-05-03 18:27:35 784
原创 Java 经典算法分析总汇
前言:在计算机软件专业中,算法分析与设计是一门非常重要的课程,很多人为它如痴如醉。很多问题的解决,程序的编写都要依赖它,在软件还是面向过程的阶段,就有‘程序=算法+数据结构’这个公式。算法的学习对于培养一个人的逻辑思维能力是有极大帮助的,它可以培养 我们养成思考分析问题,解决问题的能力。 如果一个算法有缺陷,或不适合某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或
2017-05-03 10:56:04 6737
原创 Android 原生实现Tap切换字体变色下划线移动
前言我们知道,现在实现Tab切换之类的效果都是android TabLayout+ViewPager配合使用。刚开始开发那段时期,第一次看见某app滑动tap标题变色下划线移动效果,当时非常喜欢,于是从网上找资料,发现它是一个用自定义view绘制画图实现的。本人不是对这种实现有偏见,只是觉得它太繁琐复杂,但是我的个性是有些功能搞懂Viewpager的原理后,自己动手就能实现了。好了,废话不...
2017-04-26 21:24:25 2536 4
原创 Android 签到打卡日历,自定义日期可带图标(附源码)
前言公司项目需要做一个签到送积分的系统,要求app实现这种签到功能。先在网上找了一些资料,有些用自定义View画图实现,其实对于普通码农对绘图会没耐心看各自算法。所以自己动手撸一个通用型日历,使用ViewPager+Releteview+Calendar+算法实现。想着这次也为了以后做其他项目中能用到,因为真心觉得很实用。源码地址:http://download.csdn.net/deta...
2017-04-26 17:12:44 15553 2
原创 Java DecimalFormat玩转计算,保留小数点,格式化字符串
在实际开发中,需要把数字显示固定一种格式,比如浮点型0.22或者千分位22,222,222,这时就可以用到java的DecimalFormat类去格式化。一:介绍DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。DecimalFormat 包含一个模式 和一组符号符号含义:0 一个数字 # 一个数字,不包括 0
2017-04-26 11:55:20 2313
原创 Android RadioGroup多行显示,解决单选问
非常简单!RadioGroup多行显示其实就是两个RadioGroup进行切换,使用RadioGroup的clearCheck()方法进行操作。但是在使用clearCheck()之前,如果RadioGroup已经设置过监听,执行就会报StackOveflowError错误。解决办法:先setOnCheckedChangeListener(null)再调用clearCheck()然后重新setOnCheckedChangeListener(checkedListener)。
2017-04-19 16:46:01 7869 1
原创 Java/Android 日期格式SimpleDateFormat转换,以及Date和Calendar的使用
获取时间日期的方式有两种 :Date 和Calendar。一、Date 的使用:1:配合SimpleDateFormat进行转换。例如:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d");yy/MM/dd HH:mm:ss :2002/1/1 17:55:00(24小时制)yy/MM/dd HH:mm:
2017-04-17 10:31:05 10827
原创 Android 多进程的基础使用及优缺点
前言说起进程,不得不说说进程和线程之前的关系。在操作系统角度描述,线程是CPU调度的最小单位且是有限的系统资源。而进程是值一个执行单位,例如一个程序或应用,一个进程包含多个线程,默认的一个线程是主线程,即UI线程,可以操作Ui界面元素,但不能做耗时任务,否则会ARN程序无响应。我们可以使用多进程分担主进程压力以免因资源消耗过大被crash掉,另外多进程相互监听可以唤醒,使应用程序长期驻守后...
2017-04-08 19:20:58 5978 2
原创 Android必须知道的Java内存结构及堆栈区别
一、认识Android储存结构对于Android来说,存储主要分为三个部分:内存、内部存储以及外部存储,详细介绍如下:(1)内存存储RAM(Random Access Memory)内存与PC的内存是一样的,是用来运行程序,不能用来永久存储数据,手机一旦关机,在内存中的所有数据都将会丢失,内存也是现在人类制造的所有电子设备所必需拥有的。(2)内部存储RO
2017-04-06 10:36:41 5719 1
原创 Android 框架MVVM详解
导读我们一步步来,从MVC开始。 MVC 我们都知道,模型——视图——控制器。为了使得程序的各个部分分离降低耦合性,我们对代码的结构进行了划分。他们的通信方式也如上图所示,即View层触发操作通知到业务层完成逻辑处理,业务层完成业务逻辑之后通知Model层更新数据,数据更新完之后通知View层展现。在实际运用中人们发现View和Model之间的依赖还是太强,希望他们可以绝对独立的存在,
2017-04-05 12:19:48 5332 4
原创 Android MVP设计模式介绍(附简单Demo下载)
一、MVP由来MVP模式属于UI框架模式的一种,随着UI技术的功能日益丰富,View层也履行着越来越多的职责。为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP(Model-View-Presenter)模式应运而生。二、MVP与MVCMVP:因为是从经典的模式MVC演变而来,它们的基...
2017-04-05 12:02:45 1468 3
原创 Android MVC设计模式详解
一、MVC原理 MAC是一种非常经典的应用设计思路,MVC将业务逻辑、数据与界面显示分离,真正实现了代码的高内聚低耦合。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分Mode --View--Controller(模型--视图--控制器)三层。一个模型可以有多个视图,一个视图可以有多个控制器,一个控制器也可以有多个模型。
2017-04-05 11:48:51 3112
转载 Android 广播Broadcast的两种注册方式静态和动态
定义BroadcastReceiver,“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时...
2017-04-01 18:14:35 39226
原创 最常见的Android内存优化方式及防止泄漏造成OOM总结篇
前言内存优化目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。既然说到内存泄漏和优化,就不得不先简单了解一下内存分配策略,然后再举常见泄漏例子和解决方法,最后做一下总结,这样更直观全面了解Android内存方面处理。强烈!推荐好文相关阅读。1、Java 垃圾...
2017-04-01 12:07:27 4232 3
原创 Java Final修饰符存储位置,为什么String是不可变的?
前言 相信大家在开发中,对于final修饰符都比较常见,它会将修饰的变量固定不可重复赋值。但是我们是否思考过被它所修饰属性变量或类存储在哪里呢?下面已我将用比较有趣的问答形式,让大家对final有一个全面的认识。在不了解java的内存分配存储知识的可以先异步看一下内存如何分配(简单普及知识)。问题一究竟final修饰的数据被存储在什么位置呢?
2017-04-01 11:59:55 9440 5
原创 Java 面向对象封装、继承、多态——编程思想总结
什么面向对象?一句话,万物皆对象。比如,人是一个类,男人或女人就是人类的对象。而面向对象思想强大之处是,我们可以继续划分类,比如,前面说的人类可以属于动物类,那么本属于人类的男人或女人,也可以属于动物类。面向对象三大特性是什么?封装、继承、多态。首先,我们先通过一个有趣的比喻说明来理解。 首先说定义一类人被封装成“贪官”,我们就是平民老
2017-04-01 09:27:05 1771
原创 Android 适配语言、屏幕、图片、横竖屏、版本
目录一、适配国家语言(1)手机系统语言适配(2)应用切换语言二、屏幕适配(1)图片适配(2)、XML布局适配(3)、横竖屏适配三、适配不同系统版本前言智能手机的用户分布在不同国家,且偏好各异,这就要求开发阶段兼容适配;由于各厂家生产出的安卓设备分别率不同、屏幕大小和风格也存在各异,如果手机的用户设备各异,仅用一张图片可能会出现拉伸变形模糊,影响用户体验,因...
2017-03-28 19:02:12 5666
原创 Android Okhttp3 (二) 二次封装请求管理类
前言: 网络框架有很多,各领风骚各有不足,比如volley就是很优秀了,但是不支持大文件上传;之前项目中使用过的Xutils开源框架,使用起来也是蛮方便的,功能比较全,有数据库、图片缓存、注解、网络请求等等,秉着一个开源库只处理一件事的想法,决定逐步替换到Xutils。下面先对比okHttp、volley、android-async-http等比较推荐的开源网络请求的优劣,做出我
2017-03-28 12:33:18 6595 4
转载 Android ViewFlipper实现淘宝垂直滚动广告条
下面是我们今天要实现的效果,图片是Gif,运行效果是很流畅的,由于这个图片反应有点慢,会浪费大家点时间,所以我把它调快了,大家可以掏出手机打开淘宝看,一模一样的从源码可以看出,其实ViewFlipper间接的继承了FrameLayout,也可以说ViewFlipper其实就是个FrameLayout,只不过在内部封装了动画实现和Handler实现一个循环而已ViewFlipper的布局实现布局的编...
2017-03-23 11:35:36 897
原创 必须知道的Android网络框架大全!值得一看良心文章!
导语大多数应用都离不开连接网络,可以通过网络给服务器发送、获取一些数据。通常在 Android 中进行网络连接一般使用 Scoket 和HTTP两种方式。而HTTP 请求方式比 Scoket 多得多,HTTP 请求一般采用原生的 HttpClient 和 HttpUrlConnection 的两种网络访问方式。可是在 Android 5.0 的时候 Google 就不推荐使用 HttpCl
2017-03-22 13:30:26 3825
转载 Android MVVM使用DataBinding
转载:http://blog.csdn.net/jdsjlzx/article/details/48133293今天来了解一下Android最新给我们带来的数据绑定框架——Data Binding Library。数据绑定框架给我们带来了更大的方便性,以前我们可能需要在Activity里写很多的findViewById,烦人的代码也增加了我们代码的耦合性,现在我们马上就可以抛弃那么多的
2017-03-21 18:02:18 693
原创 Android DownloadManager下载管理,app更新
目录前言一、介绍二、使用事项三、Request类注意事项四、Query 类五、下载完成监听六、原理简析七、小结前言在日常APP的开发中,通常情况下无可避免的要与调用网络后台数据接口。关于Android 网络请求接口的方式可以点击此此处进行学习。当我们实现一个从网络下载文件的功能时候,一般设计思路是这样的:使用Http发起请求,在IntentService的...
2017-03-20 15:18:33 4371
原创 Android基础GridView、ListView、Edittext属性大全
前言:Android基础控件的属性,在开发过程中会用到,另外多了解一些属性会加快功能的实现,特别是Edittext文本输入在用户填写时肯定用到,如果充分利用其属性,会事半功倍。有很多控件特殊属性连android大牛都不一样玩的很6,所以骚年们,开发之路漫长,平静自己的心态,且专心编程且享受生活,人生也就那么回事不必心浮气躁,加油吧!一:GridView的一些特殊属性:
2017-03-15 17:28:08 987
原创 JAVA 线程池ThreadPoolExecutor及核心参数
使用普通线程会带来一些问题,如匿名Runnable无法进行管理,多次执行需要new多次对象;而使用线程池,不仅可以控制并发数、还可以重复利用存在的线程,减少系统的开销。
2017-03-13 14:59:00 2879 1
原创 Android 动画之视图动画的使用
导导Android的动画框架包括帧动画、视图动画(又叫补间动画)、属性动画。在Android3.0之前,视图动画一家独大,但随之后属性动画框架被推出。相比属性动画,视图动画一个非常大的缺陷就是不具备交互性。当某个元素发生视图动画后,其响应事件的位置还依然在动画前的地方,所以视图动画只能做普通的动画效果,避免交互发生,且效率较高使用方便。视图。
2017-02-23 15:05:57 3458 1
原创 Android 使用ColorMatrix颜色矩阵改变图片风格
这里写的是一个简单的修图功能,用到颜色矩阵ColorMatrix类。 上源码:private ImageView mImageView;private float[] mColorMatrix=new float[20]; //设置20个颜色数值 private void setImageMatrix() {// TODO 将矩阵值设置到图像
2017-02-20 18:10:05 898
原创 Android 使用PorterDuffXfermode实现刮奖效果
刮刮乐效果实现起来代码量不多,很简单。 主要是理解PorterDuffXfermode,它是一种集合概念,交集、并集等图像的混合显示模式。 需要注意的是两个图层交集区域的显示 方式,dst是先画的图形,src是后画的图形。 这里使用DST_IN模式将贝塞尔曲线路径绘制钱面覆盖的图层即可。 直接上源码 :就一个自定义ImageView类public class Xfermo
2017-02-20 18:05:14 650 2
原创 Android PopupWindow悬浮弹框使用及解决back键点击不消失的问题
导语PopupWindow这个类用来实现一个弹出框,自定义布局,这个弹出框是悬浮在当前activity之上的,相对dialog自由度大,小型悬浮弹框比较有优势。PopupWindow小案例public class MainActivity extends Activity { private Context mContext = null; @Override
2017-02-20 17:58:13 795
原创 MAC安装JDK及环境变量配置
访问Oracle官网 http://www.oracle.com,浏览到首页的底部菜单 ,然后按下图提示操作: 2.点击“JDK DOWNLOAD”按钮: 3.选择“Accept Lisence Agreement”同意协议: 4.点击Mac OS X x64后面的下载链接:
2017-02-20 17:46:00 4420 1
原创 Android Activity、Viewpager嵌套Fragmen生命周期分析总结
目录一、Fragment生命周期:二、fragment在replace()切换生命周期变化三、Activity嵌套Fragment的生命周期变化四、ViewPager 中 Fragment的生命周期五、交互知识总结1、与MainActivity沟通, 使用碎片中的控件:2、与MainActivity沟通,碎片中使用MainActivity的控件:3、Fragmen...
2017-02-20 17:41:52 1962 1
原创 Android 必须最近流行的框架库及开发语言,看这一篇就够了!
本文更新时间:2018年07月12日15:50:40目录导语图片加载库异步分发通信库新技术语言注入注解框架设计模式UI框架网络请求库日志打印库logger,简单,漂亮的android和强大的记录器。权限请求库SQLite数据库LitePal,一个Android库,使得开发人员使用SQLite数据库非常容易。导语2017...
2017-02-20 17:37:34 53370 10
Android 二维码扫一扫demo
2020-01-06
ExpandableListViewDemo.zip
2019-11-27
TestApplication.zip
2019-05-08
download-manage
2019-01-09
Bluetoothdemo
2017-09-11
音频震动管理
2017-09-08
ToolBar封装抽象类统一项目风格
2017-06-01
Android 热修复tinker补丁加载出错,提示日志如下:
2018-03-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人