Android
文章平均质量分 75
吴豪杰
这个作者很懒,什么都没留下…
展开
-
安卓项目实战----收集用户信息(二)
前言在安卓项目实战—-收集用户信息(一)中,已经实现了短信的读取并写入到文件的操作,这篇文章在此基础上增加广播短信操作的管理模块。 PS:临近考试,所以很久没有更新…bla bla bla… more 遗留的BUG在之前的短信操作类中,表面看没什么问题,在模拟器中完美运行,但是当把它放到真机测试时,就出现了写入文件失败,如图。 ![image](/AP151227/illegalChar.j原创 2016-01-21 21:41:45 · 751 阅读 · 0 评论 -
《极简笔记》源码分析(一)
0. 介绍此文将对Github上lguipeng大神所开发的 极简笔记 v2.0 (点我下载源码)代码进行分析学习。 通过此文你将学到:应用源码的研读方法MVP架构模式Application的应用Degger2依赖注入框架搜索控件的使用ButterKnife库的使用Material主题RecyclerView等新控件的用法Lambda表达式Java自定义注解aFinal框架原创 2016-04-13 13:27:02 · 7193 阅读 · 4 评论 -
浅谈Android自定义View
0. 前言本文将对自定义View的原理和方法进行简要讲解,通过此文,你将学到:安卓的View架构View的绘图机制自定义View的方法步骤 1. View控件的架构1.1 View和ViewGroupAndroid中,控件大致可以分为两大类:View控件ViewGroup控件它们都会在界面中占得一块矩形区域。View控件是单个的视图控件,是一个独立的最小个体,View控件之间互不相容,比原创 2016-05-26 21:17:56 · 1125 阅读 · 1 评论 -
《极简笔记》源码分析(二)
此文将对Github上lguipeng大神所开发的 极简笔记 v2.0代码进行分析学习。 通过此文你将学到: - Lambda表达式 - Java自定义注解 - aFinal框架 - RxJava框架 - EventBus消息框架 - 布局文件常用技巧 - PreferenceFragment - 动态申请权限原创 2016-04-24 21:30:27 · 5339 阅读 · 0 评论 -
《简易新闻》源码分析
0. 前言本文将对github上 liuling开发的基于Material Design和MVP的《简易新闻》源码进行简要分析,通过本文你将学到:阅读应用源码的步骤RecyclerViewNavigationView下拉刷新和上拉加载Material过渡动画CollapsingToolbarLayout1. 寻找入口分析一个应用就是从MainActivity下手,那么如何找到MainA原创 2016-05-20 21:40:32 · 7395 阅读 · 0 评论 -
EventBus 源码分析
0. 前言EventBus 是一款针对Android优化的发布/订阅事件总线。主要功能是替代 Intent , Handler , BroadCast 在 Fragment , Activity , Service ,线程之间传递消息。优点是开销小,代码更优雅,以及将发送者和接收者解耦。此文将对最新的 EventBus 3.0 的源码进行简要的分析。1. 用法回顾EventBus 3.0 的用法较之原创 2016-07-22 23:09:44 · 906 阅读 · 0 评论 -
LayoutInflater 源码分析
LayoutInflater(布局填充器) 在安卓开发中,可以说是扮演着相当重要的角色,它让我们的 ListView 、 RecyclerView 等很容易变得多姿多彩,也正是它如此容易的操作,让它不由地多出了一份神秘…这篇博文将基于 Android 6.0 对 LayoutInflater 的源码进行一定分析。原创 2016-08-05 17:53:12 · 624 阅读 · 0 评论 -
Android Handler机制 源码解析
0. 前言Handler 在 Android 开发过程可以说是必不可少的一枚棋,它保证了系统运行过程中的消息有序进行传递和处理。此文将在 Android 6.0 源码层面对 Handler 的运行机制进行简要剖析。 1. 总览Handler的内部实现主要涉及到这三个类: Thread、MessageQueue和Looper。它们之间的关系可以用如下的图来简单说明: Thread是最基础的,Lo原创 2016-08-27 18:56:06 · 600 阅读 · 0 评论 -
Android 相关重难点知识整理
集合对 HashMap 进行排序: HashMap 本身无序,但其子类 LinkedHashMap 使用链表结构,实现了有序。通过 HashMap#entrySet() 方法可以将 Map 转为 Set<Entry> ,再在 ArrayList 的构造函数中可以传入 Collections ,正好 Set 和 List 的父类就是 Collections ,这样就可以调用 Collections原创 2016-12-16 11:31:55 · 2464 阅读 · 0 评论 -
Android 中多次设置 OnClickListener 只执行一次吗?
问题对于 Android 初学者,可能对这个问题会比较疑惑: 对于一个 View,比如 Button,如果为其设置多次点击监听 OnClickListener 回调方法,同时还在布局中设置了 onClick 属性,并且也实现了点击回调方法,那么问题来了,哪些回调方法会执行呢?又是以怎样的顺序执行呢?请跟随脚步和我一探究竟…实验现象我们先来做个实验,观察一下实验现象。 首先在布局文件中声明一个原创 2017-01-07 11:41:16 · 7286 阅读 · 1 评论 -
Android LruCache 源码分析
学过操作系统这门课的朋友都还记得 LRU 这个算法吧,中文名叫”最近最久未使用”,它是用在页面置换策略中的一种很巧妙的淘汰算法,而在 Android 中,也有一个缓存淘汰机制用到了它,叫做 LruCache,它也可以说是一个精妙的设计吧,这篇博文中,笔者将带领大家剖析它源码中的精妙之处…1. 初始化LruCache 类源码位于 android.util.LruCache 包下,大家也可以同原创 2017-01-18 12:35:51 · 1119 阅读 · 0 评论 -
Android Application对象必须掌握的七点
1:Application是什么?Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 App转载 2016-04-08 18:48:04 · 1470 阅读 · 1 评论 -
Handler中不能操作Toast的解决方案
前言在安卓开发中,Toast和AlertDialog可以说是最常用的控件之一了吧,但是你在实际开发中有没有遇到过这个异常呢: Can’t create handler inside thread that has not called Lopper.prepare()没错,细心的你一定发现了这不就是在“非主线程中操作UI”或“在Handler中嵌套Handler”引发的异常吗,那么关于为什么会原创 2016-03-12 17:54:07 · 5008 阅读 · 0 评论 -
RxJava入门学习笔记
什么是RxJava?RxJava的自我介绍是一个在 Java VM上使用可观测的序列来组成异步的、基于事件的程序的库。这是一个非常精准的概括,但是用“异步”两字概括也许更为通俗易懂。此文将简要记录学习RxJava的笔记。 参考文献 给Android开发者的RxJava详解基本概念RxJava 有四个基本概念:Observable (可观察者,即被观察者)、 Observer (观察者)、原创 2016-03-19 21:00:20 · 443 阅读 · 0 评论 -
安卓项目实战----收集用户信息(一)
安卓项目实战—-收集用户信息(一)前言大家好!欢迎继续来访我的网站。从今天起,我将在这个专题记录我的一个安卓项目实战,我将在此中分享一些个人经验见解,希望能带给大家一点帮助,这个项目将帮助学习安卓SQLite的使用、反射工程、广播服务等等,甚至一些设计模式相关知识(其实目前我也不太懂,只是在读《设计之禅》中形成一点意识,另外也强烈推荐此书)OK,就这样不多说,开始吧! 项目简介首先介绍一下整个项目原创 2016-01-21 21:37:45 · 1197 阅读 · 0 评论 -
Activity深入理解(一)
Activity的生命周期对于单个Activity可见状态onCreate()->onStart()->onResume()不可见状态onPause()->onStop()onDestroy()销毁状态onDestroy()对于多个Activity不多讲,只注意一点: 每次打开新的Activity总会调用当前的onPause()方法交互设计思想为什么需要onPause()?是否多此原创 2016-01-21 21:36:11 · 732 阅读 · 0 评论 -
安卓Fragments入门
什么是Fragment Fragment代表的是在一个Activity里面用户界面的一个行为或者一个部分。可以在一个Activity中组合多个Fragment或者在多个Activity中使用同一个Fragment。Fragment拥有自己的生命周期和事件体系,但位Activity之下,所以我们可以把它看做是一个子Activity。Fragment受限于ActivityFragment必须嵌入在原创 2016-01-23 01:31:28 · 456 阅读 · 0 评论 -
安卓NavigationDrawer的使用
Navigation Drawer介绍 导航抽屉(NavigationDrawer)是一个面板,该面板显示应用程序的主导航选项在屏幕的左边缘。它通常是隐藏的,但当手指从屏幕左边缘滑出时,在应用程序中的最高层次,在动作栏中用户触摸应用程序图标。官方介绍总是那么不接地气,其实就是一个从左边拉出来的抽屉而已,是一个很常见的效果,说的再多也不如贴一张图看得明白。 关于导航抽屉的设计原则,可以参见Go原创 2016-01-25 16:46:42 · 737 阅读 · 0 评论 -
弹出消息的新方式——Snackbar
前言安卓学习的第一课应该就讲了安卓弹出消息Toast的使用,它能够简单快捷有效地以气泡方式提醒用户,但在MaterialDesign盛行的今天,Toast未免也太Low了,本文要讲的即是Toast的取代者——Snackbar。Snackbar介绍Snackerbar简单说就是用来取代Toast的,所以这里就不多说,放两张图大家自行体会。 Toast:Snackbar:使用CoordinatorLa原创 2016-01-26 18:19:46 · 2733 阅读 · 0 评论 -
使用Tab创建滑动视图
滑动视图滑动视图就是在顶栏有个Tab标题栏,显示内容的标题,下面正文区域是ViewPager构成的可以滑动切换的布局,这种设计也是很常见的,一般用于新闻,应用市场等应用,Tab栏展示分类标题,ViewPager展示正文内容。 实现滑动视图首先要做的是让正文区域显示可以滑动切换的内容,毫无疑问,使用ViewPager来实现: <?xml version="1.0" encoding="utf-8"?原创 2016-01-29 16:45:25 · 476 阅读 · 0 评论 -
Accessibility辅助功能的使用
前言又到春节,大家这几天抢红包抢得高兴吗?最近,安卓“辅助功能”特性的应用倒是越来越火了,比如免Root自动安装应用、微信自动抢红包等,这些都是利用安卓的Accessibility实现的,所以是时候了解一下Accessibility了。 介绍 官方介绍: 许多Android用户有不同的能力,要求它们以不同的方式与他们的Android设备进行交互。这包括用户视觉、物理或年龄限制,防止他们完原创 2016-02-09 01:10:12 · 7093 阅读 · 0 评论 -
深入理解Activity(二)
前言系列中上一篇文章中对Activity的基础知识进行了讲解,这篇文章主要讲一些易理解偏差的零碎知识点。 可交互与可见在Activity的生命周期中,出现了两个差不多的方法: onStart()与onResume(),与之配对的还有onStop()与onPause(),它们都是Activity出现在前台时调用,那它们有什么区别呢?区别在于:onStart()与onStop()都是处于前台,可见,原创 2016-02-02 15:22:02 · 500 阅读 · 0 评论 -
Android权限管理
前言农历腊月二十五,年味也愈加浓重了,在新年到来之前争取再多更新几篇博客。此文讲解安卓的权限管理,主要是针对Android 6.0新增加的动态权限获取的使用方法。 两种权限管理什么是权限管理大家也一定都知道,想必不需要笔者多说了,笔者在此只提一下目前的两种权限管理机制: 安装时权限管理: 这是在安卓5.1及以下采用的方案,指的是安装应用完成时,应用可以获得系统权限运行时权限管理: 安卓6.原创 2016-02-03 23:40:23 · 523 阅读 · 0 评论 -
Selector无效的几种情况
前言在安卓开发中,经常会Selector来实现UI中的点按效果,以此回避重写相对复杂的OnTouchEvent事件方法,但是有没有遇到使用了Selector但点击无效果的情况呢?此文对会造成Selector无效的几种情况简单做一个总结。 1.同名问题使用xml生成的drawable与图片不能重名,否则系统优先调用图片而不是xml,所以使用xml记得删除同名图片。2.顺序问题在Selector文件中原创 2016-02-17 22:51:33 · 4243 阅读 · 0 评论 -
Ubuntu 下真机调试 Android
在 Ubuntu 下进行真机调试,不再像 Windows 下面那么简单了,需要手动配置一些文件才能够拥有正确的调试姿势,本文将讲解如何最简配置 Ubuntu 真机调试。 1. 获取 USB 设备输入命令 lsusb 显示系统中以及连接到系统的USB总线信息,会出现很多行信息,每一行由以下四部分组成: Bus 002: 总线序号Device 011: 总线设备序号ID 05c6:67原创 2017-02-09 19:06:14 · 2905 阅读 · 0 评论