进阶安卓
文章平均质量分 67
子静静
代码改变命运
展开
-
View 的事件体系
一、View的基础知识1)view的位置参数 1.view的位置主要有四个属性:top.left.right.bottom;(是相对父控件来说的,及相对坐标)。android 3.0增加x,y,(view左上角的坐标)translationX,translationY(左上角相对于父容器的偏移量);及x = left + translationX, y = top + translation原创 2015-12-11 15:46:32 · 376 阅读 · 0 评论 -
DrawerLayout NavigationView 实现侧滑(android MD 一)
实现侧滑的效果,采用md风格,用到的总要控件有 DrawerLayout和NavigationViewdemo 下载地址依赖MD系统库 compile 'com.android.support:design:25.2.0'**获取Navigation Header**View headerView = mNavigati原创 2017-10-28 15:50:45 · 473 阅读 · 0 评论 -
Handler运行机制 Looper MessageQueue ThreadLocal
你只有努力奔跑,才能留在原地。一. Handlerpost or send message post 最终还是走send一样的逻辑代码: public final boolean post(Runnable r) { return sendMessageDelayed(getPostMessage(r), 0); }public fi...原创 2018-01-09 23:02:42 · 309 阅读 · 0 评论 -
android 里的动画,自己的一些总结
不要抱怨身边的环境,去改变自己,让自己拥有更好的环境。前言移动端开发界面有时候要加入一些动画,android里有2类动画,第一类是View动画(View动画里又分2类,一类是帧动画,另一类是补间动画),另一类是属性动画;顾名思义View动画只能操作View对象,但是并不会改变View的属性。如果想要通过动画改变对象的属性值,这时候我们可以考虑使用属性动画来实现效果了。补间(T原创 2018-01-14 18:48:53 · 255 阅读 · 0 评论 -
EventBus 使用方法及源码分析
EventBus 使用方法及源码分析标签(空格分隔): android基本使用方法 **订阅模式** POSTING:发布跟订阅在同一线程,开销最小,默认的模式; MAIN: 如果发布者在非ui线程,订阅者会切换到ui线程; MAIN_ORDERED: 订阅者会先放到队列里,直到执行完相...原创 2018-03-25 17:26:16 · 248 阅读 · 0 评论 -
xUtils3源码分析之-----DB(ORM)
利用工作之外的时间终于看完了xutils3的所有模块的源码,以此博客来记录自己的分析过程,在此约定半年之后重新分析xUtils3源码对比该系列博客看看自己有没有新的突破。1. xUtils3源码解析之—–image 2. xUtils3源码解析之—–Http(s) 3. xUtils3源码分析之—–DB(ORM) 4. xUtils3源码分析之—–view注解基本使...原创 2018-03-30 22:47:26 · 547 阅读 · 0 评论 -
Okhttp3源码解析
前言基本使用方法 1.导入库compile 'com.squareup.okhttp3:okhttp:3.10.0' 2.GET请求,首先创建个client(OkHttpClient)实例,然后创建request(Request)实例,接着通过client.newCall(request)得到一个任务,最后将该任务加入队列并创建个接口回调任务执行的结果。...原创 2018-04-08 20:48:36 · 383 阅读 · 0 评论 -
ListView(AdapterView)涉及到的观察者模式
前言 ListView在我们的实际开发中,出现的频率还是比较高的。今天我们来看看,listView是怎么监听数据变化的?当adapter(数据源)调用notifyDataSetChanged()方法(相当于数据源说,我要更新数据拉,你(adapterView)ui去更新界面吧),adapterView是怎么收到通知。你说listView关adapterView鸟事啊,listVie...原创 2018-04-08 22:55:09 · 375 阅读 · 0 评论 -
xUtils3源码分析之-----view注解
利用工作之外的时间终于看完了xutils3的所有模块的源码,以此博客来记录自己的分析过程,在此约定半年之后重新分析xUtils3源码对比该系列博客看看自己有没有新的突破。1. xUtils3源码解析之—–image 2. xUtils3源码解析之—–Http(s) 3. xUtils3源码分析之—–DB(ORM) 4. xUtils3源码分析之—–view注解基本使...原创 2018-03-26 22:23:40 · 384 阅读 · 0 评论 -
Rxjava源码解析之监听回调
Rxjava源码解析之监听回调前言 该篇分析Rxjava接口回调流程的逻辑, 为了方便理解,用最简单的实例分析。实例代码;接口回调流程分析;实例代码 导入第三方Rxjava RxAndroid(用到了UI线程)compile 'io.reactivex.rxjava2:rxjava:2.0.7'compile 'io.reactivex.rx...原创 2018-04-16 11:34:27 · 929 阅读 · 0 评论 -
Retrofit源码分析
Retrofit源码分析前言 retrofit是基于okhttp3的(推荐先看OkHttp3源码解析),没图说个jb?下面附图一张(感谢这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)这篇博客友情提供); 接着我会用一个简单的实例,进行源码的分析以及讲解。 实例导入一些必要的第三方库compile 'com.squareup.retrofit...原创 2018-04-16 17:05:59 · 307 阅读 · 0 评论 -
xUtils3源码解析之-----Http(s)
利用工作之外的时间终于看完了xutils3的所有模块的源码,以此博客来记录自己的分析过程,在此约定半年之后重新分析xUtils3源码对比该系列博客看看自己有没有新的突破。1. xUtils3源码解析之—–image 2. xUtils3源码解析之—–Http(s) 3. xUtils3源码分析之—–DB(ORM) 4. xUtils3源码分析之—–view注解前言...原创 2018-04-06 13:01:59 · 1389 阅读 · 0 评论 -
xUtils3源码解析之-----image
利用工作之外的时间终于看完了xutils3的所有模块的源码,以此博客来记录自己的分析过程,在此约定半年之后重新分析xUtils3源码对比该系列博客看看自己有没有新的突破。1. xUtils3源码解析之—–image 2. xUtils3源码解析之—–Http(s) 3. xUtils3源码分析之—–DB(ORM) 4. xUtils3源码分析之—–view注解前言...原创 2018-04-06 16:17:08 · 455 阅读 · 0 评论 -
greenDao源码分析
前言 今天我们来分析下GreenDao, 进而学习开源库中涉及到的一些思想.简单的实例 1.导入相应的库// 项目 build.gradle file: buildscript { repositories { jcenter() mavenCentral() } ...原创 2018-04-18 22:25:44 · 375 阅读 · 0 评论 -
zygote进程 android启动过程
**安卓系统启动过程: 1. 系统启动时init进程会创建Zygote进程,Zygote进程负责后续Android应用程序框架层的其它进程的创建和启动工作。 2. Zygote进程会首先创建一个SystemServer进程,SystemServer进程负责启动系统的关键服务,如包管理服务PackageManagerService和应用程序组件管理服务ActivityManagerService。翻译 2016-04-27 16:54:27 · 288 阅读 · 0 评论 -
android ViewStub的应用
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。 这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inf转载 2017-10-25 13:44:41 · 271 阅读 · 0 评论 -
CoordinatorLayout和AppBarLayout(android MD 三)
CoordinatorLayout 调度协调子布局或者单纯的作为ViewGroup使用 NestedScrollingParent CoordinatorLayout和AppBarLayout搭配使用 添加依赖compile 'com.android.support:design:25.0.0'原创 2017-10-29 16:43:50 · 451 阅读 · 0 评论 -
Drawable及其子类(BitmapDrawable、ShapeDrawable等)
一、BitmapDrawable:(.9格式的图片NinePatchDrawable类似)表示一张图片,在开发中我们可以使用原始的图片或者通过xml的方式来描述。xml描述如下:<?xml version="1.0" encoding="utf-8"?><bitmap android:src(图片资源id) android:antialias(是否开启抗锯齿功能) and原创 2015-12-11 18:01:13 · 602 阅读 · 0 评论 -
activity的生命周期
activity的生命周期分为典型情况和异常情况。 一.典型情况下生命周期的分析: 1)onCreate:表示activity正在创建,是第一个方法;一般在这个方法中我们做一些初始化工作,如加载界面布局资源; 2)onRestart:表示activity正在重新启动; 3)onStart:表示activity正在被启动,activity已经可见了,但是还没出现在前台,无法和用原创 2015-12-08 15:41:56 · 306 阅读 · 0 评论 -
严禁横竖屏切换时,重新创建activity(运行时异常)
android:configChanges=”orientation|screenSize”原创 2016-02-02 10:35:32 · 268 阅读 · 0 评论 -
主题选择器分析----5.1
ChooserDetailFragement类:private ThemeManager mService; ThemeChangeRequest request = getThemeChangeRequestForSelectedComponents(); 将已选择的组件信息添加到容器里; 通过mService.requestThemeChange(request, true);得到原创 2016-04-13 18:40:30 · 453 阅读 · 0 评论 -
activity的启动模式和flags
一、activity的启动模式分为4种: 1)standard:标准模式,也是系统默认的模式;每次启动都会创建一个实例,不管该实例是否存在。 2)singleTop:栈顶复用模式,在该模式下,如果新的activity已经位于栈的顶部,则不需要创建,同时onNewIntent方法会被回调。如当前栈内情况为abcd,a为栈底,d为栈顶,再次启动d,当d为singleTop,那么栈内原创 2015-12-11 10:47:50 · 454 阅读 · 0 评论 -
ThemeChooser---debug(5.1)
private ThemeManager mService; mService = (ThemeManager) getActivity().getSystemService(Context.THEME_SERVICE);得到ThemeManager类, 该类里包含了服务接口IThemeService;ThemeManager类: /frameworks/base/core/java/an原创 2016-04-27 16:59:46 · 358 阅读 · 0 评论 -
mysql 一些常用命令
一. alter 1. alter add: alter table tablename add id int primary key not null auto_increment; 2.alter drop,alter change;二. insert into 字段属性分别为DATE,TIME,TIMESTAMP:原创 2017-07-13 17:39:44 · 274 阅读 · 0 评论 -
安卓服务的启动方式之一 bindService unbindService
`MainActivity.class“public class MainActivity extends AppCompatActivity {private Intent intent;private MyConn conn;private IMyBinder myBinder;@Overrideprotected void onCreate(Bundle savedInstanceSt原创 2017-10-10 14:43:19 · 5016 阅读 · 1 评论 -
android里的线程
android里的线程 AsyncTask(封装了Thread和Handler,采用了线程池),IntentService, HandlerThread和一些常用的线程池线 程 1.AsyncTask 有采用线程池,封装了Thread和Handler采用ThreadPoolExecutor线程池:public abstract class AsyncTask<Params, Progres原创 2017-10-25 17:30:31 · 1919 阅读 · 0 评论 -
android进程间通信ipc Messenger (一)
Messenger跨进程通信底部的实现采用了Binder原创 2017-10-26 22:33:35 · 356 阅读 · 0 评论 -
android ipc进程间通信(概述)
介绍一些ipc的基础概念。为后面介绍进程间通信实例打铺垫。介绍一些进程间通信的方式,各个优缺点。一些常用的ipc方式android进程间通信ipc Messengerandroid进程间通信ipc Socketandroid进程间通信ipc Binder aidlandroid进程间通信ipc 文件共享android进程间通信ipc Content Provider原创 2017-10-28 22:08:29 · 309 阅读 · 0 评论 -
android进程间通信ipc Socket (二)
通过Socket通信有两种方式: 流式套接字(TCP) 用户数据报套接字(UDP)原创 2017-10-28 21:40:56 · 275 阅读 · 0 评论 -
Toolbar 替换ActionBar(android MD 二)
Toolbar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有Material Design风格等优点被大量采用。兼容5.0以下版本:加上依赖compile 'com.android.support:appcompat-v7:25.+'原创 2017-10-28 23:24:53 · 361 阅读 · 0 评论 -
Handler消息机制
前言 你只有努力奔跑,才能留在原地。handler基本使用方法 入口Activity代码如下:public class HandlerDemoActivity extends Activity {private TextView mTv;private Thread mThread;private Handler mHander = new ...原创 2018-04-19 21:35:29 · 258 阅读 · 1 评论