自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(243)
  • 资源 (2)
  • 收藏
  • 关注

原创 2.2.1 组件化gradle语法

本节主要内容讲解Gradle语法和常用的基础配置。在项目工程创建一个配置文件config.gradle:ext { username = "Android" isModule = false androidId = [ compileSdkVersion: 29, buildToolsVersion: ...

2020-03-21 22:31:33 260

原创 2.1.2 Android动态换肤

首先代码基于上一节的内容来实现的,先看一下效果:看一下代码的目录结构:ISkinable:/** * @author Eason * @createtime 2020/3/19 * @desc 皮肤切换的接口,所有需要修改日/夜间模式的都要实现这个接口 */public interface ISkinable { //在接口中的变量都默认是public st...

2020-03-20 19:49:37 280

原创 2.1.1 手写动态换肤框架及高可扩展性换肤应用

我们先分析一下源码:1. 思考xml布局文件是如何parse解析成控件加载到根布局的用到的类有:分析点有2条: protected void onCreate(Bundle savedInstanceState) { //分析1: super.onCreate(savedInstanceState)最终会走到AppCompatActivity.onCrea...

2020-03-19 20:05:47 352 1

原创 1.3.2.3 Binder架构设计

本片文章要实现Binder通信:模拟QQ三方登录功能。客户端界面BinderDemo:QQ登录页面:登录成功则回到客户端页面,并带回登录用户信息,如下图:先贴出服务端程序代码,即BinderQQ,目录结构如下:AIDL文件:// ILoginInterface.aidlpackage com.source.binderqq;// Decl...

2020-03-18 19:33:56 132

原创 1.3.1.1-3 Handler Message源码分析及手写实现

要想理解Handler源码,必须要知道下面这个些类:ActivityThread:/** * @author Eason * @createtime 2020/3/17 * @desc 程序的入口函数 */public final class ActivityThread { public static void main(String[] args)...

2020-03-17 19:18:24 219 1

原创 1.1.4 集中式登录架构设计

方式二:预编译,利用AspectJ本文先用AS 3.6.1 ,gradle 5.6.4-all试试看AspectJ的使用核心就是它的编译器,它就做了一件事,将AspectJ的代码在编译期插入目标程序当中,运行时跟在其它地方没什么两样,因此要使用它最关键的就是使用它的编译器去编译代码ajc。ajc会构建目标程序与AspectJ代码的联系,在编译期将AspectJ代码插入被切出的P...

2020-03-17 14:53:47 156

原创 1.1.3 AOP面向切面架构设计

实际是通过预编译的方式和运行时动态代理来实现程序的功能。方式一:动态代理方式二:预编译本节先讲解方式一定义:在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性...

2020-03-17 14:40:21 111

原创 1.2.5Path、贝塞尔曲线与计算规则——仿QQ未读消息拖拽粘性效果的实现

参考文章:https://www.jianshu.com/p/ed2721286778先看下效果:代码如下,详细的步骤说明都在代码注释当中了:布局文件:<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:...

2020-03-06 17:15:45 170

原创 1.2.5Path、贝塞尔曲线与计算规则

这节主要讲解path的基本使用和如何绘制贝塞尔曲线Path概念:路径,可用于绘制直线、曲线构成的几何路径,还可以用于根据路径绘制文字常用API:移动、连线、闭合,添加图形等Path的基本使用/** * Path概念:路径,可用于绘制直线、曲线构成的几何路径,还可以用于根据路径绘制文字 * 常用API:移动、连线、闭合,添加图形等 */public class Path...

2020-03-06 16:21:43 235

原创 1.2.4Canvas-实际案例操作-旋转、扩散、聚合、水波纹效果

sss

2020-03-06 12:13:44 503

原创 1.2.3Canvas高阶使用技巧-变换,状态保存,离屏缓冲,粒子特效

本片文章讲解Canvas的高级使用,可以参考这篇文章:https://www.cnblogs.com/tianzhijiexian/p/4300988.htmlCanvas所提供的各种方法根据功能来看大致可以分为几类:第一是以drawXXX为主的绘制方法;第二是以clipXXX为主的裁剪方法;第三是以scale、skew、translate和rotate组成的Canvas变换方法;...

2020-03-05 19:03:21 255 1

原创 1.2.2Paint-混合模式Xfermode和颜色过滤ColorFilter

本片文章讲解Xfermode混合模式和ColorFilter颜色过滤注意本节代码先关闭硬件加速。Xfermode一、setXfermode(Xfermode xfermode)Xfermode国外有大神称之为过渡模式,这种翻译比较贴切但恐怕不易理解,大家也可以直接称之为图像混合模式,因为所谓的“过渡”其实就是图像混合的一种,这个方法跟我们上面讲到的setColorFilter蛮相似的...

2020-03-05 17:15:02 487 1

原创 1.2.1Paint画笔高级应用(Paint基本使用和5种Shader)

画笔Paint的基本使用 mPaint = new Paint();//初始化 mPaint.setColor(Color.RED);//设置颜色 mPaint.setARGB(255, 255, 255, 255); mPaint.setAlpha(200); mPaint.setAntiAlias(true); mPaint.setStyle(Paint.Style.STROK...

2020-03-04 19:36:03 360

原创 1.1.2UI绘制流程(测量, 布局, 绘制)——空

暂时先空着,后续完善

2020-03-04 17:45:21 119

原创 1.1.1UI绘制流程及原理——View的绘制流程

这一片文章主要讲View的绘制流程,具体指的是如何找的绘制入口。具体该如何绘制将在下一篇文章内讲解。基于API-23的源码讲解part2:View的绘制流程首先讲一下APP的启动过程:1. 点击桌面APP图标时,Launcher的startActivity()方法,通过Binder通信,调用system_server进程中AMS服务的startActivity方法,发起启动请求...

2020-03-04 17:39:43 155

原创 1.1.1UI绘制流程及原理——View是如何被添加到屏幕窗口上

本片文章讲解:UI绘制流程-源码讲解(基于API28的源码分析)文章大纲:part1:View是如何被添加到屏幕窗口上part2:View的绘制流程本片先讲part1:View是如何被添加到屏幕窗口上,part2:放在下一篇文章讲解。part1:View是如何被添加到屏幕窗口上首先,MainActivity中调用了setContentView(R.layout.act...

2020-03-04 13:22:40 732

原创 JavaWeb——03_JS

传智播客-铁男 录制时间:2014.11.1101-课程回顾* CSS * CSS的简介 * 层叠样式表。 * CSS与HTML的结合(4种) * HTML的标签提供了属性 style="CSS的代码" * HTML提供了标签 <style type="text/css">CSS的代码</style> 放在<head>中

2017-01-16 18:30:59 658

转载 Android动态换肤开源库Colorful发布

文章转载:http://www.2cto.com/kf/201509/442034.html介绍:最近本人需要用到夜间模式,但是经过一番搜索似乎并没有看到好的开源实现,看到有一个类似的库MultipleTheme,但是需要自定义所有要实现换肤功能的View,感觉比较麻烦。而Prism又不支持Theme,且目前已经不再更新,因此这个方案也不能用。当发现现有的解决方案不能很好的解决问题时,往往只能自己实

2017-01-16 11:10:35 368

原创 JavaWeb——02_CSS

传智播客-铁男 录制时间:2014.11.1101-课程回顾HTML语言回顾* HTML的简介 超文本标记语言。* 是网页最基础的语言。* 都是由标签所组成的。* HTML的基本格式 <html> <head> 属性信息,辅助性的信息 引入外部的文件(css、js) 先加载

2017-01-13 16:50:46 585

原创 JavaWeb——01_HTML

传智播客-铁男 录制时间:2014.11.1101-HTML的简介 HTML: HyperText Markup Language,超文本标记语言。文件的后缀可以是html或者htm。编辑文本使用浏览器打开(chrome、ie、firefox)code:这是一段<font color="red" size="18">HTML</font>代码。效果:这是一段HTML代码。全

2017-01-12 14:37:33 2466

原创 性能优化之内存泄露

动脑学院 Ricky老师 2017年11月27日录制什么是内存泄露? 内存不在GC的掌控之内了。了解几个问题 垃圾回收机制 GC 某对象不再有任何的引用才会进行回收。GC回收机制的原理 GC Root,可以作为GC Root引用点的是 JavaStack中的引用对象方法区中静态引用指向的对象方法区中常量引用指向的对象Native方法中JNI引用的对象Thread–活着的线程

2016-12-30 10:42:58 411

原创 从ListView到RecyclerView

Android5.0 之后推出的。集合了ListView和GridView的功能,还自带了瀑布流效果。Menu:RecyclerView:布局填充器LayoutManager适配器AdaptermRecyclerView.setLayoutManager(LayoutManager layout)LayoutManager LinearLayoutManagerStaggeredGrid

2016-12-28 17:29:52 315

原创 深入剖析Android内存泄露原理

Android 内存泄露分析1. 什么是内存泄露OOM:outOfMemery dvm只有10M,如加载大图片,堆内存空间。2. JVM垃圾回收机制和算法3. 常见的内存泄露场景非静态内部类的错误使用 内部类对象对外部类对象有一个隐式的强引用 解决方案:不要这样使用线程,可以使用线程池,或在在Activity结束的时候,把Thread的任务给结束掉。Java中的四种引用类型强引用 Us

2016-12-26 17:53:46 1159

原创 Java基础第一阶段——泛型

泛型概述ArrayList al = new ArrayList();al.add("abc");al.add("abc2");al.add("abc3");al.add(4);//al.add(new Integer(4)) 自动装箱Iterator it = al.iterator();while(it.hasNext()){ String s = (String) s.nex

2016-12-26 10:36:59 369

原创 svg矢量图实现android多形状图形框架-动脑学院

位图:可以看到像素点 png jpg… 矢量图:算法生成的 依据路径 SVG:SVG 是使用 XML 来描述二维图形和绘图程序的语言。矩形:<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg

2016-12-22 20:10:32 983

原创 RxAndroid入门-传智播客

01_监听回调RxJava在Android中的应用主要内容:RxJava是什么,能解决什么问题对比其他技术理解为什么要选择RxJavaRxJava相关APIRxJava在Android中的典型使用场景RxJava在Android中与其他框架的融合RxJava是什么,能解决什么问题github介绍: a library for composing asynchronous and e

2016-12-21 18:18:40 464

原创 Android中MVC、MVP、MVVM模式的运用 (续)

这篇文章主要是来展示实际开发之中自己写的Code。Demo是用一个简单的登陆来演示的。效果图如下:LoginDemo包结构:MainActivity.Javapublic class MainActivity extends AppCompatActivity { private EditText etUserName, etPwd; private ProgressDialog d

2016-12-02 14:40:55 436

原创 Android中MVC、MVP、MVVM模式的运用

浅谈MVC MVP MVVM模式 技能设计模式框架MVC MVX(MVP、MVVM)1、开篇案例用户登录案例,如何拆分代码使结构更加的合理。 2、MVC项目改造分析、思路登陆逻辑分析[流程] 用户登陆界面展示用户输入按钮点击判断用户输入合法性显示滚动条一系列耗时操作隐藏滚动条提示用户的信息Toast代码实现判断用户输入合法性(是用了一个业务Bean来实现的publ

2016-12-02 10:09:46 773

原创 Java基础第二阶段——01_JavaWeb_html&标签

Java基础第二阶段——01_JavaWeb_html&标签Tags :Html 标签 写在前面:之前是学习的黑马74期web,然后看了差不多第一天视频的一半,发现课程结构比较少,不如之前学过的广陵散老师讲的详细。印象当中学web的时候,好像第一个学习也不是gls老师了,总想找到当初的感觉,翻看之前写的blog,应该是在2014年8月12日开始接触学习的web了,时间过得好快啊。只可惜找不到之前

2016-12-01 00:40:24 2705

原创 Java基础第一阶段——05_Java语言基础_数组操作&排序&查找

Java基础第一阶段——05_Java语言基础_数组操作&排序&查找学习视频:毕向东35天Java基础_毕向东录制时间:2012年2月19日视频目录:视频时长:1小时24分钟 + 1小时54分钟 + 1小时13分钟 章节 使用 # 每日视频 ## 01-Java基础(数组-第二种定义格式)第一种格式:不知道具体的值 int[] arr = new int[3];第二种格式:知道具体的值

2016-11-30 16:50:05 489

原创 Java基础第一阶段——04_Java语言基础_for语句&函数&数组

Java基础第一阶段——04_Java语言基础_for语句&函数&数组学习视频:毕向东35天Java基础_毕向东录制时间:2012年2月19日视频目录:视频时长:1小时24分钟 + 1小时54分钟 + 1小时13分钟 章节 使用 # 每日视频 ## 01-Java语言基础(语句-For循环嵌套) 格式for(int x = 0;x<3;x++){ for(int y = 0;y

2016-11-24 00:37:54 539

原创 Java基础第一阶段——03_Java语言基础_运算符&if&while&switch&for语句

Java基础第一阶段——02_Java语言基础_运算符&if&while&switch&for语句学习视频:毕向东35天Java基础_毕向东录制时间:2012年2月19日视频目录:视频时长:4小时55分钟章节 使用 # 每日视频 ## 01-Java语言基础(比较运算符&逻辑运算符)比较运算符 ==、!=、 >、 <、 >=、 <=逻辑运算符(用于连接两个布尔类型的表达式 &、|、

2016-11-23 11:42:26 664

原创 Java基础第一阶段——02_Java语言基础_关键字&变量&运算

Java基础第一阶段——Java语言基础_关键字&变量&运算学习视频:毕向东35天Java基础_毕向东录制时间:2012年2月19日视频目录:视频时长:4小时19分钟章节 使用 # 每日视频 ## 第二章 Java语言基础01-Java语言基础(关键字)Java语言基础组成关键字标识符注释常量和变量运算符语句函数数组学习新语言只需要掌握两点即可表现形式这个东西什么时候用

2016-11-22 15:33:12 550

原创 Java基础第一阶段——01_Java语言概述&HelloWorld

Java基础第一阶段——Java语言概述&HelloWorldTags : Java基础 记得最初在学习Java的时候,也是学习黑马视频,看的毕向东老师的基础视频。印象当中,学习Java基础知识不下3遍,后来反思下,其实走过了不少冤枉路,也“浪费”了不少的时间在这些基础知识上面,本身是知道基础知识的重要性,但是一遍遍的去学习基础知识,总觉得还是“没劲”、“徒劳”。与其这样,倒不如一次性巩固好这些

2016-11-20 23:02:11 924

原创 Java基础重新学习--开篇

接下来一系列的Java基础文章意在巩固Java基础知识。学习路线参考了传智播客给出的Java学习路线图。 附录一张Java学习路线图(来自图转传智播客):从上图中可以看出Java学习路线可以分为6大部分Java语言入门一基础语法MySQL+JDBC基础Java语言入门二前段知识(Html)JavaWebMySQL+JDBC深入Java中级一Hibernate5框架Struts2框架

2016-11-20 17:47:52 2206 1

原创 《Android5.0开发范例代码大全》读书笔记

记录一些读书心得

2016-10-26 23:57:22 934 2

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-10-17 10:15:18 215

原创 手机彩票——Day06_2

*5、表名的获取.avi*6、将实体数据导入到数据库.avi*7、获取到主键.avi*8、将数据库信息导入到实体.avi*9、实例的创建.avi*10、数据库操作的步骤.avi*11、数据库版本的维护.avi

2015-01-14 20:42:12 921

原创 手机彩票——Day06_1

*1、构建高速缓存(一).avi*2、构建高速缓存(二).avi*3、LruCache简答介绍.avi*4、数据库操作——问题清单.avi*5、表名的获取.avi*6、将实体数据导入到数据库.avi*7、获取到主键.

2015-01-14 18:47:08 454

原创 手机彩票——Day05_2

*8、购物车ListView填充.avi*9、选号处理.avi*10、购物车购买操作.avi*11、用户登录.avi*12、追期和倍投的设置界面——工作清单.avi*13、追期和倍投的设置处理.avi

2015-01-14 14:32:50 526

MVC_MVP_MVVM_demos

MVC MVP MVVM

2016-12-02

LoginDemo_part1

MVC MVP MVVM

2016-12-02

空空如也

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

TA关注的人

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