自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (6)
  • 收藏
  • 关注

原创 移动架构学习笔记十三:仿照ButterKnife手写View注入框架

前言 上一篇博客中仿照XUtils手写了一个View注入框架,这个框架的核心原理是用到了反射,不停反射,全程反射。说实话,实际项目中我是不会选择XUtils这样的框架的,毕竟大量的反射还是有损性能的。今天我们将使用另外一种思路来实现View的注入,避免使用大量的反射,从而提升性能。今天的注入框架是参考ButterKnife来实现的,ButterKnife现在是最流行的注入框架,很多小伙伴都在使用,但是不知道大家清不清楚ButterKnife是用什么原理实现的,今天我们就抽丝剥茧来聊一聊ButterK..

2020-08-26 17:25:00 138

原创 Android架构师学习之路与视频教程总结推荐

目录前言视频教程java基础java进阶Android高级UIAndroid性能优化Android NDK数据结构和算法移动架构深入到系统层Hybird混合开发实战项目Gradle其他视频获取方式 前言 很早就有人总结了Android架构师技能图谱,小伙伴们可以参考一下自己学习到不到位。看到这浩瀚的知识海洋,很多小伙伴们怕是要晕了。别急,今天给大家沿着Android的技能知识图谱来总结一下视频学习教程。感兴趣的小伙伴可以按照视频...

2020-08-03 11:37:18 689

原创 Android程序员如何写好Unit Test

Unit Test学习笔记什么是Unit TestUnit Test即单元测试,单元测试是应用测试策略中的基本测试。通过针对代码创建和运行单元测试,您可以轻松验证各个单元的逻辑是否正确。在每次构建后运行单元测试可帮助您快速捕捉和修复由应用的代码更改导致的软件回归。测试应用是应用开发过程中不可或缺的一部分。通过持续对应用运行测试,您可以在公开发布应用之前验证其正确性、功能行为和易用性。测试还会为您提供以下优势:快速获得故障反馈。在开发周期中尽早进行故障检测。更安全的代码重构,让..

2020-12-20 14:48:55 2342 1

转载 Android-内存映射mmap

转载于:https://blog.csdn.net/mcryeasy/article/details/86741781一、引言说到内存映射函数mmap大家可能觉得陌生,其实Android中的Binder机制就是mmap来实现的。不仅如此,微信的MMKV key-value组件、美团的 Logan的日志组件 都是基于mmap来实现的。mmap强大的地方在于通过内存映射直接对文件进行读写,减少了对数据的拷贝次数,大大的提高了IO读写的效率。二、Linux文件系统由于Android是基于Linux

2020-10-20 10:50:20 449

原创 Android TV使用贝赛尔曲线制作炫酷的开场动画

目录前言效果展示动画一效果分解贝赛尔曲线代码示例动画二效果分解时差动画面向对象绘制总结前言很多App启动的时候会用到炫酷的开场动画。Android TV端也一样,每一个不同的模块,产品经理都可能设计了不同的开场动画。对于这些复杂的开场动画,最重要的是学会分解,只要分解得当,就会变成一个个普通的动画组合而成。今天给大家介绍一个曾经在项目中使用过的炫酷的开场动画。效果展示上面的图片中展示了一个曾在项目中使用的开场动画,由于项目还还在线,所以仅.

2020-10-05 18:48:58 561 1

原创 Android TV控件获得焦点的扫光效果

前言Android TV开发与手机开发最大的不同点就是焦点,TV常用的操作方式是遥控器,所以给用户一个醒目美观的焦点是至关重要的。很多产品经理在设计焦点的时候都会选择扫光的效果,比如小牧电视的控件选中效果。今天就给大家介绍一款自定义的扫光效果控件。效果展示1、海报扫光效果2、带圆角的控件扫光效果,光效不会超过圆角的位置3、扫光容器,可以在扫光容器中放子控件,目前仅实现了LinearLayout4、图片扫光效果,光效与图片中不透明内容交融的一种效果实现思路这一组

2020-09-30 11:10:30 3162 1

原创 Flutter学习笔记一:Windows 上面搭建 Flutter Android 运行环境

Flutter 介绍Flutter 是谷歌公司开发的一款开源、 免费的移动 UI 框架, 可以让我们快速的在 Android 和iOS 上构建高质量 App。 它最大的特点就是跨平台、 以及高性能。Flutter 基于谷歌的 dart 语言, 如果没有任何 Dart 语言的基础, 不建议直接学习 Flutter。 建议先学习 Dart 语言的基本语法。 然后再进入 Flutter 的学习。市面上已经有很多的混合 App 开发框架了, 但是有些混合 APP 开发框架主要是针对前端开发者的: 比如

2020-09-24 10:46:04 243

原创 Dart学习笔记九:Dart中的库

目录Dart中的库冲突解决部分导入延迟加载Dart中的库前面介绍Dart基础知识的时候基本上都是在一个文件里面编写Dart代码的,但实际开发中不可能这么写,模块化很重要,所以这就需要使用到库的概念。在Dart中,库的使用时通过import关键字引入的。library指令可以创建一个库,每个Dart文件都是一个库,即使没有使用library指令来指定。Dart中的库主要有三种:1、自定义的库import 'lib/xxx.dart';2、系统内置库...

2020-09-23 14:21:20 273

原创 Dart学习笔记八:对比Java学习Dart类与对象

前言Dart是一门面向对象语言,满足面向对象编程(OOP)的三个基本特征:封装、继承、多态。Dart是单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是Object的子类。Dart类和对象的概念同Java很像,快速浏览了一遍Dart关于类和对象的概念,在此仅记录一下Dart类和对象与Java的区别。其他基本的概念就不过多赘述。构造函数首先来谈谈Dart类与java类构造函数的区别。区别一:Dart类中有默认无参的构造函数,但是一旦提供了有参的构造函数之后,无参构造函数则不能使用。

2020-09-22 11:35:43 444

原创 Dart学习笔记七:函数详解

前言今天学习Dart中的函数,总的来说,Dart中的函数像是java和js的结合,也有一些扩展。学习过java和js的同学,理解Dart的函数应该很容易。今天记录Dart函数一些需要注意的点。函数定义自定义方法的基本格式: 返回类型 方法名称(参数1类型 参数1,参数2类型 参数2,...){ 方法体 return 返回值; }int doubleNum(int num){ return num*2;}方法的返回...

2020-09-18 11:54:25 232

原创 Dart学习笔记六:集合类型详解

目录前言ListSetMap集合的遍历forEachmapwhereanyevery前言Dart的集合类型使用感觉跟ES6中的集合差不多,这里整理一下Dart集合的常用属性和方法。ListList里面常用的属性和方法 常用属性: length 长度 reversed 翻转 isEmpty 是否为空 isNotEmpty...

2020-09-17 16:59:32 291

原创 Dart学习笔记五:循环语句

目录前言for循环while循环do while循环breakcontinue前言Dart中的循环语句同java一模一样,没有任何区别,在此只做简单的记录。for循环for (int i = 0; i < 10; i++) { print(i);}while循环int i = 10;while (i > 0) { print(i--);}do while循环while 和 do while的区别 第一次循环条...

2020-09-17 15:41:26 420

原创 Dart学习笔记四:运算符、条件表达式、类型转换

目录Dart运算符:算术运算符关系运算符逻辑运算符赋值运算符基础赋值运算符复合赋值运算符条件表达式三目运算符??运算符:类型转换Number与String类型之间的转换其他类型转换成Booleans类型Dart运算符:算术运算符Dart算数运算符有:+ - * / ~/ (取整) %(取余);跟其他语音差不多,比java多一个取整运算符。int a=13;int b=5;print(a+b);...

2020-09-17 14:53:35 214

原创 Dart学习笔记三:数据类型

目录Dart数据类型概览字符串类型字符串定义字符串拼接数值类型布尔类型List(数组/集合)Map(字典)Dart判断数据类型Dart数据类型概览常用数据类型: Numbers(数值): int double Strings(字符串) String Booleans(布尔) bool List(数组) 在...

2020-09-17 11:07:35 274

原创 Dart学习笔记二:入口、变量、常量及命名规则

目录入口函数变量常量命名规则入口函数dart的入口函数为main,跟java一样。比如如下代码即一个入口,其中void可以不写,写了表示main方法没有返回值void main(){ print('你好dart');}变量dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推倒。定义变量可以通过var关键字,也可以通过类型来申明变量,比如:var str='this is var';String str='this is var'...

2020-09-16 17:00:03 186

原创 Dart学习笔记一:环境搭建

目录前言Dart sdk安装开发工具HelloWorld前言从今天开始学习一下Dart+Flutter,做一下笔记。首先来记录一下Dart的环境搭建过程。Dart sdk安装下载地址:http://www.gekorm.com/dart-windows/,建议下载正式版下载完成后双击安装,可以选择自己习惯的安装位置,这个过程很简单。安装完成后需要验证是否安装成功。在命令行输入:dart --version如图所示,看到版本号输出,证明dart安装成功了。.

2020-09-16 16:49:24 230

原创 微信小程序初次体验心得

前言前段时间做生意的老婆向我提了一个需求,希望我帮她定制一个客户管理系统。我第一反应就是网上找一个不就行了吗,网上找了一圈发现,大量的客户管理系统面向的是企业级别,功能做得过于的繁琐和冗余,并且还要收费。思来想去决定用微信小程序来实现她的需求。选择小程序而不用安卓的原因是,我老婆用的是苹果手机,而我主攻安卓。初次体验在这之前没有接触过小程序,第一步当然看看官网文档和网上的教程摸索一番。学习下来,给我的感觉是小程序封装性还是蛮高的,比写前端页面要简单,毕竟像移动端常用的tab框架已经集成好了。很多

2020-09-15 16:38:11 1142

原创 移动架构学习笔记十二:代理模式(Proxy )续

前言 前段时间学习了代理模式,并写了一篇笔记:移动架构学习笔记九:代理模式(Proxy )。当中有一些遗留问题,后来反复琢磨之后,觉得再写一篇笔记解决当时的问题。 遗留问题 笔记的最后一个问题:有没有办法将代理运用到所有事物呢?当时的代码在我后来反复的琢磨后,发现并不能用于代理所有的事物,因为在LogHandler类中,明确持有了Car类,导致它其实只能代理Car类。要想用于代理多有事物,得放宽当中引用的事物。后来修改了代码如下:public class Main { pub..

2020-08-19 17:15:45 155

原创 移动架构学习笔记十一:状态模式(State)

状态模式 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。主要解决对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。 类图 案例 我们参考上面的类图,提一个状态模式的应用案例。玩过实况足球、FM等游戏的朋友都知道,足球运动员自身的状态往往会决定在场上的表现。假定球员状态有好和坏,我们根据球员状态不同模拟在场上的不同表现。我们先来一个反面教材,对照着看,下面是普通程序员的代码:public class Player ...

2020-08-14 11:25:49 184

原创 移动架构学习笔记十:迭代器模式(Iterator)

迭代器模式 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 角色 1.Iterator(迭代器)迭代器定义访问和遍历元素的接口2.ConcreteIterator (具体迭代器)具体迭代器实现迭代器接口对该聚合遍历时跟踪当前位置3.Collection(集合)聚合定义创建相应迭代器对象的接口4.ConcreteCollection (具体集合)具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个...

2020-08-11 17:07:38 176

原创 移动架构学习笔记九:代理模式(Proxy )

代理模式 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 角色 抽象角色(Movable):通过接口或抽象类声明真实角色实现的业务方法。代理角色(CarProxy):实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色(Car):实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。 案例 下面我...

2020-08-07 11:35:57 175

原创 移动架构学习笔记八:化主动为被动的观察者模式

目录观察者模式角色1、抽象主题(Subject):2、具体主题(Concrete Subject):3、抽象观察者(Observer):4、具体观察者(Concrete Observer):案例总结 观察者模式 观察者模式(有时又被称为模型(Model)-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者...

2020-08-04 11:39:07 780

原创 移动架构学习笔记七:六大设计原则

单一职责原则 单一职责原则(SRP:Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。特点 降低类的复杂性, 对类或接口的职责有清晰明确定义 提高可读性 提高可维护性 降低变更引起的风险, 接口改变只影响相应的实现类, 不影响其他类 重点接口一定要做到单一职责;类的单一职责比较难以实现, 尽量做到只有一个原因引起变化;一个方法尽可能做一件事, 能分解就分解, 分解到原...

2020-07-30 11:20:02 129

原创 移动架构学习笔记六:策略模式,Comparable和Comparator

目录策略模式组成实现总结 策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 组成 抽象策略角色: 策略类,通常由一个接口或者抽象类实现。具体策略角色:包装了相关的算法和行为。环境角色:持有一个策略类的引用,最终给客户端调用。 实.

2020-07-27 11:48:26 162

原创 移动架构学习笔记五:最简单的单例模式

前言 说到单例模式,应该是设计模式里面最简单也最容易理解的一个模式了。只要是有过工作经验的程序猿,闭着眼睛应该也能写出一个单例模式的例子。不过呢,如果抱着学究精神来看单例模式,里面的水也是不浅的。 单例模式 一个类有且仅有一个实例,并且自行实例化向整个系统提供。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法..

2020-07-23 15:26:25 85

原创 移动架构学习笔记四:简单工厂模式与抽象工厂模式

目录前言简单工厂模式抽象工厂模式总结简单工厂模式使用场景:抽象工厂使用场景: 前言 从今天开始,再次系统学习设计模式。这是第三次学习设计模式,每次学习都会有不一样的收获。为什么要反复学习设计模式呢,打个比方,编程语言就像武功招式,而设计模式就像内功。没有内力修为,再好的武功招式也是花架子,发挥不了最强的威力。而内力不是一朝一夕能练成的,大多靠平时工作中的积累和反复总结。所以每工作多两三年,再回头看看设计模式,从中得到的东西都不一样。今天从工厂模式开始,把简单工厂模式和抽象工

2020-07-21 15:30:43 114

原创 Android Studio实际工作中遇到的问题记录

前言 Android Studio经常会更新,基本上每次更新都会出一些莫名其妙的问题。每次都是百度半天才能解决问题,而且过段时间再遇到,还TM容易忘记,又得查半天。好记性不如烂笔头,还是专门开个贴,把工作中踩过的坑都记录一下吧,免得记性不好重复查浪费时间。此贴持续更新…… AS更新后,不能运行main方法 有时候写了一个工具类,就想简单测试一下,最简单的当然是写个main方法然后右键run一下咯。最近更新到AS3.6之后,运行main方法居然报错了。A problem occurre..

2020-07-20 16:08:13 563

原创 移动架构学习笔记三:UML之时序图

目录前言时序图角色(Actor)对象(Object)生命线(Lifeline)控制焦点(Focus of Control)消息(Message)同步消息=调用消息(Synchronous Message)异步消息(Asynchronous Message)返回消息(Return Message)自关联消息(Self-Message)Combined Fragments总结 前言 之前学习了UML中的用例图和类图,今天学习时序图,感觉用例图、类图加

2020-07-19 15:00:07 618

原创 移动架构学习笔记二:UML之类图

前言 之前一篇博文学习了UML之用例图,今天将学习UML中的类图。如果是做Android开发,或者在中小型企业,UML可能用得并不多。但是想要更进一步,进入移动架构的行列,了解UML还是必不可少的技能。 UML类图 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)1.泛化(Generaliz...

2020-07-18 15:12:42 234

原创 移动架构学习笔记一:UML之用例图

目录前言UML用例图参与者(Actor)用例(Use Case)关系(Relationship) 前言 作为Android前端开发工程师,想要提升自己,学习移动架构是必不可少的。学习移动架构,首先需要了解UML,不需要精通,但至少要了解。了解UML不管对自己思路上的整理,还是痛他人的沟通,都会有很大的帮助。今天首先来学习用例图。 UML用例图 用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示一个外部用户能够观察到的系统功能模型图。用例图多用于...

2020-07-17 17:14:47 231

Android自定义九宫格抽奖控件

业务需要九宫格抽奖,但网上的资源都不适用,自己写了一个,可控制转圈数、速度、最后停放位置,可适用服务器配置资源,而不是仅仅用本地图片资源。现在分享给大家,需要的可以参考以下。

2017-06-23

NIO加线程池实现Android消息推送

一套简单的推送机制。使用TCP长连接,完成服务器端往客户端推送消息的功能。为了加强服务器端的并发性,使用Java NIO+线程池的模式来实现服务器端的推送服务。

2013-04-11

Android Application部分详解

文档详细介绍了Android的运行机制,Application类的作用和使用方法,读过之后终于不再一知半解了!

2012-08-21

Android NDK实战入门项目

经典的Android NDK实战项目,包括android代码和C代码。

2012-08-21

使用Gallery做出图片层叠效果

使用Android原生的Gallery控件做出类似于Iphone音乐播放器中层叠滑动的效果,另外UI界面设计非常漂亮,是专业的美工设计的。

2012-08-21

ASP.net + access图书管理系统

运用vs+access开发,是电子商务英语的课程设计!

2009-12-29

空空如也

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

TA关注的人

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