自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 事件分发机制、滑动冲突详细讲解

事件分发机制、滑动冲突本章将介绍View的一个核心知识点:事件分发机制。事件分发机制不仅仅是核心知识点更是难点,不少初学者甚至中级开发者面对这个问题时都会觉得困惑。另外,View的另一大难题滑动冲突,他的解决方法的理论基础就是事件分发机制,因此掌握好View的事件分发机制是非常重要的。事件分发过程由三个很重要的方法完成:dispatchTouchEvent,

2017-10-30 13:33:28 361

原创 NDK开发--CMake篇

NDK开发--CMake篇NDK (Native Development Kit)是工具开发包,帮助开发者快速开发C/C++等语言的动态库,并自动将so和java一起打包成apk.JNI (Java Native Interface)标准是 Java平台的一部分,JNI 是java语言提供的 Java和C/C++ 相互沟通的机制,Java可以通过JNI 调用

2017-10-12 13:04:38 490

原创 Android Dalvik VM内存优化之内存泄露篇。

Android Dalvik VM内存优化之内存泄露篇。虽然Dalvik VM支持垃圾收集,但是这不意味着可以不用关心内存管理。其实更应该格外注意移动设备的内存使用,毕竟其内存空间是受到限制的。在实际应用中,一些内存使用问题是很明显的,例如在每次用户触摸屏幕的时候如果应用程序有内存泄露,将会有可能触发OutOfMemoryError,最终会导致程序崩溃。另外一些问题却很微妙,也

2017-10-11 22:45:38 638

原创 Android Dalvik VM内存优化之内存查看篇。

Android Dalvik VM内存优化之内存查看篇。前序:Android采用Java语言(虽然官方认定Kotlin语言为新语言,目前已经替换中),而Java语言虚拟机为JVM,但是,Android的虽然使用Java语言,但是虚拟机是Dalvik VM (此需要明确,下面需要用到此观点)。Android内存优化:1、Android内存和CPU使用情况。

2017-10-11 20:33:50 1578

原创 分离链接法HashMap实现

分离散列法--------------------HashMap实现分离散列法,其做法是将散列到同一个值的所有元素保留到一个表中。查询:为执行一次查找,我们使用散列函数来确定究竟遍历那个链表。然后我们再在被确定的链表中执行一次查找。增加:我们检查相应的链表看看该元素是否已经处在合适的位置上。如果这个元素是个新元素,那么它将被插入到链表的前

2017-10-09 15:44:19 234

原创 算法之二分查找法

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以

2017-10-08 16:45:09 323

原创 算法之冒泡排序

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。int[] data = new int[]{49, 34, 98, 10, 33, 53, 20,

2017-10-08 16:31:42 218

原创 IPC进程通信机制---------AIDL实战

本篇带你揭开AIDL神秘的面纱:相似知识点:Service通信。IPC,含义为进程间通信或则跨进程通信,是指两个进程之间进行数据交换的过程。AIDL: Android interface defination language.适应读者:熟悉Service通信。Start:三点关键点:1、服务端, Se

2017-10-07 16:25:29 258

原创 Android活动冲突解决

Android活动冲突解决活动冲突,主要是MotionEvent事件中的ACTION_MOVE事件,原因;View与父View无法明确,事件由那个View进行处理。找到问题,我们下面开始展示解决方案【结合事件分发机制,如果想要了解事件分发机制内容,请查看作者文章】:1、外部拦截法:事件都先经过父容器的拦截处理,如果父容器需要此事件就拦截,如果不需要此事件

2017-10-07 11:21:15 358

原创 二叉树的遍历规则

二叉树的遍历规则二叉树的三大遍历规则:1、先序:根左右。2、中序:左根右。3、后序:左右根。如上图:二叉树结构数据先序的输出顺序为:A B D E C F G.中序的输出顺序为:D B E A F C G.后序的输出顺序为:D E B

2017-10-05 13:10:40 632

翻译 Hash的计算方案

一个好的散列函数通常倾向于“为不相等的对象产生不相等的散列码”。这正是hashCode约定中第三条的含义。理想情况下,散列函数应该把集合中不相等的实例均匀地分布到所有可能的散列值上。要想完全达到这种理想的情形是非常困难的。幸运的是,相对接近这种理想情形则不太困难。下面给出一种简单的解决办法:1、把某个非零的常数值,比如说17,保存在一个名为result的int类型的变量中。2、对于

2017-10-04 18:08:35 518

翻译 (五) 集合处理

1. 【强制】关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals,就必须重写 hashCode。 2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的 对象必须重写这两个方法。 3) 如果自定义对象做为 Map 的键,那么必须重写 hashCode 和 equals。 说明:String 重写

2017-10-02 13:24:44 453

原创 相见恨晚 Android开发中相见恨晚的Method Class Interface

1、Activity.startActivities() :常用与在应用程序中间启动其他的Activity2、TextUtils.isEmpty():简单的工具类,用于检测是否为空。3、TextView.setError():在验证用户输入的时候很棒。4、Build.VERSION_CODES:这个标明了当前的版本号,在处理兼容性问题的时

2017-10-02 11:59:54 348

原创 Hello Kotlin第一篇

Kotlin 和 Android下面是引用Android官方的言语:Kotlin 现在是 Android的官方语言!Kotlin因其简洁性和强大的功能早已深受众多Android开发者的热爱。因此,我们非常兴奋地宣布支持Kotlin进行Android开发,为开发者带来一流的体验。Kotlin 编写Hello Androidfun main(args: Array) {

2017-10-02 10:10:07 208

原创 Fragment生命周期

情景一:Activity中addFragment(new BlankFragment)生命周期流程:MainActivity: ========================================onCreateMainActivity: ========================================onStartMainActivity: =

2017-10-01 18:14:04 277

原创 Android 广播的生命周期

收听收音机就是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同。接受广播时广播(发送方)并不在意接收方收到广播时如何处理。Android的广播机制在Android系统中有着各种各样的广播,比如电池的使用状态、电话的接收和短信的接收都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。Demo:流程======  SecondAc

2017-09-30 18:28:23 1244

原创 Android 运行时权限解读Permission

Android 运行时权限解读Permission

2017-09-30 18:11:53 982

原创 Android Service详解

Service的基本概念和用途:Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果退出应用时,Service进程并没有结束,它仍然在后台运行,那什么时候会用到Service呢?比如播放音乐的时候,有可能想边听音乐边干些其他事情,当退出播放音乐的应用,如果不用Service,就听不到歌了,所以这时候就得用到Service了。又比如当

2017-09-30 13:06:25 237

原创 App启动背景图,冷启动,Activity全屏,悬浮窗悬浮

Application启动背景图,冷启动,Activity全屏,悬浮窗悬浮前序:网上一搜很多都是通过代码:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_LAYOUT_STATABLE);getW

2017-09-28 20:38:45 857

原创 Android调节屏幕亮度

调节屏幕亮度调节屏幕的亮度,分为:1、调节当前应用的Window视图的亮度。当离开此页面,或则退出App时,则会恢复调节前的亮度。2、调节系统的亮度。不管离开此页面,还是退出App,都不会恢复之前的亮度。(若系统设置了“自动调节亮度”模式,直接更改则不会改变亮度,需提前取消“自动调节亮度”)sample:1、更改亮度调节模

2017-09-28 20:37:15 680

原创 单例模式Singleton

定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。使用场景:确保某一个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或则某种类型的对象应该有且只有一个。实现单利模式:1、构造函数不对外开放,一般为Private2、通过一个静态方法或则枚举返回单利类对象3、确保单利类的对象有且只有一个,尤其是多线程的环

2017-09-26 20:01:47 246

原创 强大的Handler详细分析

首先讲讲Handler运行机制:创建Handler需要绑定Looper对象,并且执行Looper.prepare();\Looper.loop();至此,Looper线程堵塞已经实现了。线程堵塞?嗯,对的,当调用代码Looper.prepare();此时进行初始化,【既然是初始化,在同一个线程中肯定不能调用两次,这个大家都知道的】,代码执行到Looper.loop();此时

2017-09-26 19:58:47 241

原创 ScrollView嵌套Recycler View嵌套冲突解决

今天在项目中,遇到:问题描述:1、Scroll View嵌套Recycler View会出现RecyclerView无法显示全部,需要滑动RecyclerView才能进一步查看,但是项目中需要的是,不需要滑动也要显示全部。2、实现了第一步,当滑动页面,会发现页面卡顿,,,,,,不开心了解决方案:1、XML中设置,在 recyclerview 外面

2017-09-26 19:55:54 403

原创 Activity的生命周期、启动模式、IntentFilter、Flags

1、Activity的生命周期的解析:1、典型情况下的生命周期2、异常情况下的生命周期典型情况:是指在有用户参与的情况下,Activity所经过的生命周期的改变;异常情况:是指Activity被系统回收或则由于当前设备的Configuration发生改变从而导致Activity被销毁重建。在正常情况下的生命周期分析:1、onC

2017-09-26 19:50:10 464

空空如也

空空如也

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

TA关注的人

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