独立博客版本请点击这里 由来 2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了<Android进阶之光>这本书的编写.写作过程中并没有遇到什么困难,就是书名一直确定不下来,后来受到了<运营之光>的启发,这本书的名字才最终确定下来,寓意就是为Android开发者的进阶之路带来指引和光明. 为什么写这本书 官方话这里我就不说了,其实就两点: 1.目前市场上的Andr…
No1: 标准注解: 1)@Override:覆写 2)@Deprecated:过时 3)@SuppressWarnings:取消警告 4)@SafeVarargs:申明使用了可变长度参数的方法 No2: 元注解:用来注解其他注解,从而创建新的注解 1)@Targe:注解所修饰的对象范围 2)@Inherited:注解可以被继承 3)@Documented:应该被JavaDoc工具记录 4)@Retention:保留策略 5)@Repeatable:一个注解在同一声明类型上多次使用 No3: 定…
接上篇<Android进阶之光>--Android新特性 No1: 组件: 1)底部工作条-Bottom Sheets 2)卡片-Cards 3)提示框-Dialogs 4)菜单-Menus 5)选择器 6)滑块控件-Sliders 7)进度和动态 8)Snackbar(底部可操作弹出框)与Toast 9)Tab No2: Snackbar 包含了文字信息和一个可选的操作按钮 Snackbar.make(activity_main,"标题",Snackbar.LENGTH_…
事件总线RxBus,替代EventBus和otto 1)创建RxBus public class RxBus{ private static volatile RxBus rxBus; private final Subject<Object,Object> subject = new SerializedSubject<>(PublishSubject.create()); private RxBus(){ } public static RxBus getInstance(){…
No1: RxJava使用 dependencies{ compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' } 1)创建Observer(观察者) Subscriber subscriber = new Subscriber<String>(){ @Override public void onCompleted(){ Log.d(TAG,"onCompleted"); } @…
1)配置 dependencies{ ... compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' compile 'com.squareup.retrofit2:retorfit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.1…
Android 5.0新特性 1)全新的Material Design设计风格 2)支持多种设备 3)全新的通知中心设计--按照优先级显示 4)支持64位ART虚拟机 5)多任务视窗Overview 6)设备识别解锁--比如附近信任设备 7)Ok Google语音指令 8)Face unlock面部解锁 9)新增RecyclerView 10)新增CardView 11)悬挂式Notification(进程焦点不变,不打断用户操作,setFullScreenIntent.还增加了通知的显示等级)…
第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material Design 是一种大胆的平面化创新.换句话说,谷歌希望能够让Material Design 给用户带来纸张化的体验.这种新的视觉语言,在基本元素的处理上,借鉴了传统的印刷设计,以及字体版式.网络系统.空间.比例.配色和图像使用等这些基础的平面设计规范.另外,Material Design 还推崇实体隐…
No1: Project的build.gradle文件添加 buildscript{ dependencies{ ...classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } Module:app的build.gradle添加 apply plugin: 'com.neenbedankt.android-apt' ... dependencies{ ... apt 'com.google.dagger:dagger-compi…
No1: EventBus三要素: 1)Event:事件 2)Subscriber:事件订阅者 3)Publisher:事件发布者 No2: EventBus的4种ThreadMode(线程模型): 1)POSTING(默认):该事件是在哪个线程发布出来的,事件处理函数就会在哪个线程中运行 2)MAIN:事件的处理会在UI线程中执行 3)BACKGROUND:在新线程或者发布的子线程中执行,禁止进行UI更新操作 4)ASYNC:在新建的子线程中执行,禁止进行UI更新操作 No3: EventBu…
No1: 添加依赖库 Project的build.gradle文件添加 buildscript{ ... dependencies{ ... classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } 在Module:app的build.gradle文件添加 apply plugin:'com.neenbedankt.android-apt' ... dependencies{ ... compile 'com.jakewhart…
No1: Volley源码分析: Volley.newRequestQueue-> RequestQueue.start()-> CacheDispatcher.start()->CacheDispatcher.run()-> NetworkDispatcher.start()->NetworkDispatcher.run()-> RequestQueue.add()-> BasicNetwork.performRequest()-> HttpStack.p…
No1: 实现多线程的3中方法 1)继承Thread,重写run()方法 2)实现Runnable接口,并实现该接口的run()方法 3)实现Callable接口,重写call()方法 public class TestCallable{ //创建线程类 public static class MyTestCallable implements Callable{ public String call() throws Exception{ return "Hello World";…
No1: View的滑动 1)layout()方法的 public class CustomView extends View{ private int lastX; private int lastY; public CustomView(Context context,AttributeSet attrs,int defStyleAttr){ super(context,attrs,defStyleAttr); } public CustomView(Context context,Attr…
中级进阶推荐看一下以下这几本书 1.<Android从入门到精通(附光盘)> 明日科技 编 2.<第一行代码2 Android(第二版)> 郭霖 著 3.<Android开发进阶 从小工到专家 >何红辉 著 4.<Android进阶之光 >刘望舒 著 5.<Android开发艺术探索> 任玉刚 著 6.<Android群英传> 徐宜生 著 7.<疯狂Android讲义 >李刚 著 Android高级进阶 1.Android…
在响应式编程中,应该牢记以下两点: everything is a stream(一切皆流) don't break the chain(不要打断链式结构) 记住,可观测序列就像一条河,它们是流动的.你可以"过滤"一条河,你可以"转换"一条河,你可以将两条河合并成一条,然后它依旧是流动的.最后,它将成为你想要的那条河. "Be Water,my friend"  --Bruce Lee(李小龙) -------------------------…
我从去年开始使用 RxJava ,到现在一年多了.今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 .而最近这几个月,我也发现国内越来越多的人开始提及 RxJava .有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: RxJava 到底是什么? 鉴于 RxJava 目前这种既火爆又神秘的现状,而我又在一年的使用过程中对 RxJav…
上一篇文章Android进阶:四.RxJava2 源码解析 1里我们讲到Rxjava2 从创建一个事件到事件被观察的过程原理,这篇文章我们讲Rxjava2中链式调用的原理.本文不讲用法,仍然需要读者熟悉Rxjava基本的用法. 一.Rxjava2 的基本用法 Rxjava是解决异步问题的,它的链式调用让代码看起来非常流畅优雅.现在我们带上线程切换以及链式调用来看看.下面代码是示例: Observable .create(new ObservableOnSubscribe<String>() {…
在正文开始之前的最后,放上 GitHub 链接和引入依赖的 gradle 代码: Github: https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid 引入依赖: compile 'io.reactivex:rxjava:1.0.14' compile 'io.reactivex:rxandroid:1.0.1' (版本号是文章发布时的最新稳定版) 转载原文地址:https://gank.io/pos…
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/124 Android进阶书籍推荐 端午节前我写了drakeet的知识星球推荐,今天呢,准备再写篇软文,关于Android进阶书籍推荐的,其实这本书已经上市好些年了,是任玉刚的Android开发艺术探索. 书已经上市好些年了,为何还要推荐,主要觉得还是写的特别好,特别经典,我的Android技术图书收藏还是相当多的,几乎近几年新出的Android书籍都买了,…
转自:  http://gank.io/post/560e15be2dca930e00da1083 评注:多图解析,但是我还是未看懂. 前言 我从去年开始使用 RxJava ,到现在一年多了.今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 .而最近这几个月,我也发现国内越来越多的人开始提及 RxJava .有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度…
RxBus 通过RxJava实现Rxbus. 相信大家已经非常熟悉EventBus了.最近正在学习Rxjava,如果在项目中已经使用了Rxjava,使用RxBus来代替EventBus应该是不错的选择. RxJava最核心的两个东西是Observables(被观察者,事件源)和Subscribers(观察者).Observables发出一系列事件,Subscribers处理这些事件. RxBus工作原理 直接看代码 Note that it is important to subscribe t…
写在前面 记得我大二时“不务正业”地自学Android并跟了老师做项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经6.7年多了!但总感觉知识点很零散,并且不够深入,遇到瓶颈,所以有了这文章. 本文是我对自身的Android编程技能的总结.思考和反省,意在系统地.深入地学习Android的重难点,使自己的能力上一个台阶.下面我将会罗列Android知识体系中比较高频.重要或难懂的知识点,并未来会基于此文章列出的知识点一个一个学习研究,并写成一系列的文章,当做自己的学习总…
RxJava的核心内容很简单,就是进行异步操作.类似于Handler和AsyncTask的功能,但是在代码结构上不同. RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ). 观察者模式:Observable(被观察者)被Observer(观察者)订阅(Subscribe)之后,Observable在发出消息的时候会通知对应的Observer,并且,一个Observable可以有被多个Observer订阅. 链式调用:和Builder模式类似,调用对应的方法对原对象进行处…
上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [ViewInject] (上). 本篇博客将带大家实现View的事件的注入. 1.目标效果 上篇博客,我们的事件的代码是这么写的: 光有View的注入能行么,我们写View的目的,很多是用来交互的,得可以点击神马的吧.摒弃传统的神马,setOnClickListener,然后实现匿名类或者别的方式神马的,我…
起因 因为初学Android的时候还没有写博客的意识,现在Android的门是入了,正在进阶的道路上行走,但是就这一路也走了不少的弯路.我想,总得来说Android入门还是比较容易的,网络资源比较丰富,就连Google官方都提供了eclipse+SDK+ADT的集成(当年是要自己装ADT插件配置的),下载下来解压->打开eclipse->直接就helloworld了.然后自己按照书上搞几个Activity互相跳转,监听几个按钮也能做出各种有意思的玩意儿. 现在想起来,入门真的没啥特别大的难度.…
  Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams…
由于上一篇文章:我的Android进阶之旅------>Android之动画之Frame Animation实例 中展示的是Frame动画效果,但是之前我是将图片截取下来,不好说明确切的动画过程,因此今天百度了一下gif动画的制作工具,找到了这款不错的软件GifCam.然后我使用该软件将动画制作成gif动画,然后更新了上一篇文章上传了新制作的gif动画,使博客的说明效果更佳. 该软件的界面如下所示: 该软件的操作步骤如下: 1.拖动 GifCam 标题栏,改变其位置,并调整 GifCam 窗口大…
本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超博客 Android中文Wiki AndroidStudio-NDK开发-移动开发团队谦虚的天下 - 博客园gundumw100博客 - android进阶分类文章列表 - ITeye技术网站CSDN博文精选:Android系列开发博客资源汇总 - CSDN.NET - CSDN资讯Android笔…
<Android进阶>之第一篇 在Java中调用C库函数 这一篇列举的方法是在NDK没有出来时候用的方式 在Android发布NDK之后,可以这样使用 一.首先下载android-ndk   下载后把压缩包解压出来,例如:D:\android-ndk-r10e,目录下的ndk-build.cmd就是用来编译的批处理命令. 为了编译方便,推荐添加环境变量 Path目录下添加D:\android-ndk-r10e; 以NDK自带的例子\samples\hello-jni为例 将例子导入安卓工程:…