<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HardWorkingAnt的博客]]></title><description><![CDATA[千里之行，始于足下。光阴似箭，年华不负。]]></description><link>https://blog.youkuaiyun.com/HardWorkingAnt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HardWorkingAnt]]></copyright><item><title><![CDATA[Android7.0修改时间服务器]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/111151751</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/111151751</guid><author>HardWorkingAnt</author><pubDate>Fri, 08 Jan 2021 10:25:25 +0800</pubDate><description><![CDATA[最近有一个需求，需要修改Android设备的时间服务器。如果是普通的Android手机可以通过GPS或者其它的方法在没有网的情况下同步时间，但是对于只是搭载了Android系统的设备（如门禁、售货机之类）在无法连接外网的环境中就不那么容易做到了。]]></description><category></category></item><item><title><![CDATA[Android实现多线程下载并显示通知]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78682187</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78682187</guid><author>HardWorkingAnt</author><pubDate>Sat, 02 Dec 2017 00:03:22 +0800</pubDate><description><![CDATA[1、前言相信大家都使用过一些可以下载文件的 App，在下载列表中通常都会显示一个进度条实时地更新下载进度，现在的下载都是断点重传的，也就是在暂停后，重新下载会依照之前进度接着下载。我们这个下载的案例是有多个线程同时下载一个任务，并能提供多个文件同时下载，在下载的同时会显示通知，因为下载线程是放在 Service 中的，所以就算程序运行在后台也可以继续下载。当启动下载时，就会发送通知提示开始下载，下载]]></description><category></category></item><item><title><![CDATA[Android四大组件--BroadCastReceiver介绍]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78619389</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78619389</guid><author>HardWorkingAnt</author><pubDate>Thu, 23 Nov 2017 21:43:16 +0800</pubDate><description><![CDATA[1、广播1、定义BroadCastReceiver 意为广播接收者。Android应用程序可以发送或接收来自Android系统和其他Android应用程序的广播消息。这些广播是在感兴趣的事件发生时发送的。例如，Android系统在发生各种系统事件时发送广播，例如当系统启动或设备开始充电时。应用程序也可以发送自定义广播，例如，通知其他应用程序他们可能感兴趣的东西（例如，一些新的数据已被下载）。应用程序]]></description><category></category></item><item><title><![CDATA[Android--Notification基础介绍]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78323073</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78323073</guid><author>HardWorkingAnt</author><pubDate>Mon, 23 Oct 2017 20:42:14 +0800</pubDate><description><![CDATA[1、通知我们使用的每个应用都有通知的功能，最常看到的就是 QQ 和微信了。通知是我们可以在应用的常规 UI 外部向用户显示的消息。当我们告知系统发出通知时，它将先以图标的形式显示在通知区域中。用户可以打开抽屉式通知栏查看通知的详细信息。 通知区域和抽屉式通知栏均是由系统控制的区域，用户可以随时查看。通知区域中的通知：抽屉式通知栏中的通知：相信大家对这个样式都很熟悉了。通知的目的是告知用户 App 事]]></description><category></category></item><item><title><![CDATA[Android四大组件--Service详解]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78308536</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78308536</guid><author>HardWorkingAnt</author><pubDate>Sun, 22 Oct 2017 10:43:00 +0800</pubDate><description><![CDATA[Service 作为 Android 四大组件之一，可以说是一个合格的 Android 应用的基石。它主要用于在后台处理一些耗时的逻辑，或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下，依然让 Service 在后台保持运行状态。1、Service介绍Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。服务可由其他应用组件启动，而且即使用户切换到其]]></description><category></category></item><item><title><![CDATA[使用Kotlin开发Android基础介绍]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78302368</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78302368</guid><author>HardWorkingAnt</author><pubDate>Sat, 21 Oct 2017 11:34:33 +0800</pubDate><description><![CDATA[在今年的 Google I/O 大会上宣布 Kotlin 为 Android 开发的第一语言，既然官方都已经选择了它，我们正在学习 Android 的和 Android 开发者们自然就要了解如何使用它。1、为什么使用KotlinKotlin 是一个基于 JVM 的新的编程语言，由 JetBrains 开发。Kotlin 非常适合开发 Android 应用程序，将现代语言的所有优势带入 Android]]></description><category></category></item><item><title><![CDATA[Android小例子--实现微信界面]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78158154</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78158154</guid><author>HardWorkingAnt</author><pubDate>Wed, 04 Oct 2017 14:51:27 +0800</pubDate><description><![CDATA[大家都用过微信，相信都对那种页面在手指滑动间自由切换的效果十分惊奇吧，这篇博客就介绍如何用 ViewPager + Fragment 来实现自由切换页面。ViewPager 和 Fragment 的基本介绍我在以前的博客中都有介绍，有兴趣的朋友可以去看看。1、TitleBar的实现一般都是认为从上而下，所以首先是来实现 TitleBar。我这里是使用 ToolBar 来实现，首先是布局文件中 Too]]></description><category></category></item><item><title><![CDATA[Android--ToolBar基本介绍]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78084116</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78084116</guid><author>HardWorkingAnt</author><pubDate>Mon, 25 Sep 2017 13:26:02 +0800</pubDate><description><![CDATA[1、简介ToolBar 是 Android5.0 推出的导航控件，官方在某些程度上认为 ActionBar 限制了 android app 的开发与设计的弹性，所以 ToolBar 的出现可以说是用来代替 Action_Bar。的确对比 Action_Bar，ToolBar 的使用灵活的多，我们可以将我们想要的控件任意的添加在 ToolBar 里面，得到缤纷的效果。2、使用前说明1、兼容官方考虑到仍]]></description><category></category></item><item><title><![CDATA[Android图形处理--PorterDuff.Mode那些事儿]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78045232</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78045232</guid><author>HardWorkingAnt</author><pubDate>Wed, 20 Sep 2017 20:41:42 +0800</pubDate><description><![CDATA[我们在绘制图形图像的时候经常会用到 PorterDuff.Mode，它对我们绘制图形有很大的帮助，如果我们对它不甚了解甚至根本不理解，那会是很麻烦的事情，我这篇博客就是来给大家介绍一下 PorterDuff.Mode。1、基本介绍在介绍 PorterDuff.Mode 之前，我们首先要了解一下 Xfermode。Xfermode 被许多人称为过渡模式，就是指图像的饱和度、颜色值等参数的计算结果的图像]]></description><category></category></item><item><title><![CDATA[Android--关于Fragment的基础介绍（二）]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78015839</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78015839</guid><author>HardWorkingAnt</author><pubDate>Mon, 18 Sep 2017 09:40:42 +0800</pubDate><description><![CDATA[1、Activity与Fragment通信我们知道 Activity 与 Activity 中间通信可以通过 startActivityForResult() 和 Intent，它们通过的都是 Bundle 这个容器，我们的 Fragment 如果要与 Activity 通信也可以使用 Bundle。Activity 向 Fragment 传数据，我们可以在 Activity 中创建 Bundle]]></description><category></category></item><item><title><![CDATA[Android--关于Fragment的基础介绍（一）]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78015793</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/78015793</guid><author>HardWorkingAnt</author><pubDate>Mon, 18 Sep 2017 09:36:51 +0800</pubDate><description><![CDATA[1、基本介绍Android 运行在各种各样的设备中，有小屏幕的手机，超大屏的平板甚至电视。针对屏幕尺寸的差距，很多情况下，都是先针对手机开发一套App，然后拷贝一份，修改布局以适应平板等超大屏的。Fragment 的出现就是为了做到一个 App 可以同时适应手机和平板。Fragment 的诞生是为了支持更动态、更灵活的 UI 设计，在我们平时开发的时候都是用 Activity 加载一个布局文件，所有]]></description><category></category></item><item><title><![CDATA[LayoutInflater.inflate()方法解析]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77937298</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77937298</guid><author>HardWorkingAnt</author><pubDate>Mon, 11 Sep 2017 23:32:27 +0800</pubDate><description><![CDATA[1、基本介绍在开发中 LayoutInflater. inflate() 这个方法还是非常有用的，它的作用类似于 findViewById()。不同点是 inflate() 是用来找 res/layout/ 下的 xml 布局文件，并且实例化，而 findViewById() 是找 xml 布局文件下的具体 widget 控件（如 Button、TextView 等）。对于一个没有被载入或者想要动态]]></description><category></category></item><item><title><![CDATA[Android多点触控实现图片缩放预览]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77276356</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77276356</guid><author>HardWorkingAnt</author><pubDate>Fri, 08 Sep 2017 21:33:31 +0800</pubDate><description><![CDATA[在我的博客 Android手势识别基础介绍 中介绍了 MotionEvent 的一些知识，看过的朋友或者对手势识别有了解的都应该知道一般的触摸事件也就是单点触控该如何处理，所以我的这篇博客要介绍的就是关于如何实现多点触控。

我在博客中也介绍了多点触控的知识，但是并没有用实例实践，这里就用一个例子来说明。相信大家都经常在手机上浏览图片，大家的应用上也一定可以对图片进行放大或者缩小的处理，来让用户更]]></description><category></category></item><item><title><![CDATA[Android--获取View的宽高的几种方法]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77278811</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77278811</guid><author>HardWorkingAnt</author><pubDate>Sat, 19 Aug 2017 14:12:27 +0800</pubDate><description><![CDATA[1、getHeight()无效我们先来看看在 onCreate() 中用控件的 getHeight() 和 getWidth() 方法会出现什么情况。public class MainActivity extends AppCompatActivity {    private ImageView mImageView;    @Override
    protected void onCreat]]></description><category></category></item><item><title><![CDATA[Android--ViewTreeObserver介绍]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77408329</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77408329</guid><author>HardWorkingAnt</author><pubDate>Sat, 19 Aug 2017 13:27:36 +0800</pubDate><description><![CDATA[1、ViewTree首先我们来介绍一下 ViewTree 也就是视图树是什么。View 和 ViewGroup 是 Android UI 的基本组件， 而 ViewGroup 作为容器，可以包含一组 View， 并且 ViewGroup 其本身就是 View 的扩展。而各种不同的 Widgets 像 TextView，Button 等等也是View的扩展，只不过是放在各种 Layout 里，比如 L]]></description><category></category></item><item><title><![CDATA[Android手势识别基础介绍]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77104072</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/77104072</guid><author>HardWorkingAnt</author><pubDate>Wed, 16 Aug 2017 16:23:28 +0800</pubDate><description><![CDATA[如今的 Android 手机已经离不开手指与屏幕的交互了，基本上只要在使用手机就避免不了手势的识别，相信各位学习 Android 开发的朋友们大都与手势交互打过交道，我的这篇博客就是使用 GestureDetector 实现手势识别。1、MotionEvent如今在国内，按键手机已经是少之又少了，至少我身边的人用的都是触屏的机器，这也就说明我们手机程序开发者开发的应用应该都是围绕着触控来识别操作。拿]]></description><category></category></item><item><title><![CDATA[ViewPager的基础使用介绍]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/76921592</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/76921592</guid><author>HardWorkingAnt</author><pubDate>Fri, 11 Aug 2017 21:04:38 +0800</pubDate><description><![CDATA[一、简介ViewPager 是 Android 中的类，这个类可以让用户实现左右切换当前的 view，许多的 APP 在安装完后进入的都是一个APP引导图，是一些图文并茂的关于 APP 的功能的介绍或推荐，用户需要滑动切换浏览完所有的view，就可以使用 APP，这里的功能实现毫无疑问用到了 ViewPager。ViewPager类继承自 ViewGroup类，它是一个容器类，可以在其中添加需要的]]></description><category></category></item><item><title><![CDATA[Android--onKeyDown方法]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/73010570</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/73010570</guid><author>HardWorkingAnt</author><pubDate>Sat, 10 Jun 2017 23:42:11 +0800</pubDate><description><![CDATA[在Android开发过程中，经常要对部分手机按键进行自定义的处理，我们可以通过重写Activity的方法onKeyDown()来实现，我们根据对不同的键的处理可以增强用户体验。private long mExitTime;//保存上次点击back键的系统时间@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if]]></description><category></category></item><item><title><![CDATA[Android网络框架OKHttp初解]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/72885955</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/72885955</guid><author>HardWorkingAnt</author><pubDate>Sat, 10 Jun 2017 20:44:13 +0800</pubDate><description><![CDATA[1、OKHttp介绍1、简介OKHttp是一款高效的HTTP客户端，支持连接同一个地址的链接共享同一个socket，通过连接池来减小响应延迟，还有透明的GZIP压缩，请求缓存等优势，其核心主要有路由、连接协议、拦截器、代理、安全性认证、连接池以及网络适配，拦截器主要是指添加、移除或者转换请求或者回应的头部信息。OKHttp这个库也是square开源的一个网络请求库（OKHttp内部依赖okio），现]]></description><category></category></item><item><title><![CDATA[Android四大组件--Activity详解（二）]]></title><link>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/72866659</link><guid>https://blog.youkuaiyun.com/HardWorkingAnt/article/details/72866659</guid><author>HardWorkingAnt</author><pubDate>Tue, 06 Jun 2017 13:47:42 +0800</pubDate><description><![CDATA[1、Task 和 启动模式Task在 SDK中关于Task，有一个很好的比方，说，Task就相当于应用（application）的概念。在开发人员眼中，开发一个Android程序，是做一个个独门独户的组件，但对于一般用户而言，它们感知到的，只是一个运行起来的整体应用，这个整体背后，就是Task。  Task，简单的说，就是一组以栈的模式聚集在一起的Activity组件集合。它们有潜在的前后驱关联，新]]></description><category></category></item></channel></rss>