自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 Flutter环境问题记录(Windows)

问题1:The Flutter directory is not a clone of the GitHub project或在flutter文件夹中,在cmd中运行git init问题2:Checking Dart SDK version... 'PowerShell.exe' is not recognized as an internal or external...

2019-07-29 15:33:58 905

原创 Flutter学习(一)

之前把Dart的语法都过了一遍,并且写了一篇博客来记录了一下,接下来就是Flutter部分了一、基本特性、代码结构理解Flutter Widget采用现代响应式框架构建,就是跟React有些类似,中心思想是用widget构建UI,当UI状态发生变化时,刷新页面来达到显示新页面的目的,如果写过ReactNative会好理解很多我们首先来看一下HelloWorld程序:import ...

2019-07-02 11:07:37 218

原创 okhttp解析

我看到一篇文章,其实这篇文章很符合我想要的样子,所以在这里放个链接:https://blog.csdn.net/zhangqilugrubby/article/details/80169374okhttp是Android中一个十分普及的网络访问框架,那么它的主要优势以及远原理是什么呢?我们来一一解析okhttp的基础要点:支持HTTP2/SPDY(SPDY是Google开发的基于TCP...

2019-05-23 14:45:01 876

原创 Android组件化项目指南

在大型项目中,组件化是一个非常必要的方式,所以我就来记录一下关于组件化一些关键的点组件化的项目结构最外层类似于一个壳一样,用来动态加载一些模块,下面是各个模块,然后每个模块依赖基础组件简单的结构差不多就是这样子,但是在实际项目中组件也会互相调用,这个就需要在开发时把握好了,处理好跨组件调用的报错、展示问题1、组件化开关配置在gradle.properties文件中定义变...

2019-03-01 15:36:18 256

原创 Flutter项目接入原生项目+打包笔记

1、flutter打包,这个主要针对从0开始使用flutter开发的项目打包这块其实和原本没什么区别,生成签名我就不说了第一步:将签名文件拷贝到android/app目录第二步:在android/app/build.gradle文件中配置签名第三步:在Android Studio的控制台执行命令:flutter build apk第四步:到路径build/app/ou...

2019-02-28 18:20:53 5395 1

原创 BlockCanary原理解析(Android端UI卡顿监测工具)

     Android在效率这一块是一个需要长期优化的点,那么就需要依赖很多的第三方库以及工具,这次就从BlockCanary这个卡顿监测工具开始1、BlockCanary的使用引用dependencies { compile 'com.github.markzhai:blockcanary-android:1.5.0'}在应用的application中完成初始化...

2019-01-25 18:36:36 734

原创 ReactNative 错误锦集

错误1:......android/app/build/intermediates/res/merged/release/drawable-hdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: error: uncompiled PNG file passed as argument. Must be c...

2019-01-22 18:35:33 396

原创 ReactNative的SDK打包后给到其他项目集成

      因为这边写了一个SDK,内部基本都是用RN完成的,但是可以在原生接入,所以就需要将写好的RN版本的SDK打包成可以被集成的形式,如果让CP安装RN环境又不大现实,所以就引申出来这个需求,撇开SDK功能性的代码,我们直接开始关注如何将RN的SDK打包 RN部分的功能主要分为三部分:1、JS部分,这部分是我们主要完成的功能的JS代码部分,这部分其实打包之后就是一个jsbundl...

2019-01-22 16:34:27 2297 4

原创 设计模式:责任链模式

这次来了解一下责任链模式,主要分为两方面1、责任链模式的作用是什么     避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止2、如何实现责任链模式我们来一个最简单的需求,就是日志的打印,根据传进来的日志等级来筛选是使用INFO、DEBUG、ERROR哪一种,我就用菜鸟教程里面的例子来了:http://...

2019-01-06 16:42:13 181

原创 Dart语法快速入门

Dart的官网地址:https://www.dartlang.org/guides/language/language-tour#libraries-and-visibility在Dart中有一个基本的概念需要先了解:在 dart 中,所有的东西都是对象,无论是变量,数字或函数,所有的对象都是类的实例(包括null),所有的对象都从 Object 类继承 尽管Dart是强类型的,但类型注...

2018-12-23 23:40:59 1188

原创 ReactNative手势识别

    在原生开发中,触摸事件的流程了解还是比较重要的,那么,在ReactNative中,这一点也是一样的,那么接下来就来总结一下ReactNative中手势识别方面的一些信息吧一、常用触摸组件   在ReactNative中,有几个组件,基本上可以满足大部分的需求,这些组件分别是TouchableHighlight------按下的时候,封装的视图的不透明度会降低,同时会有一个底层的...

2018-08-17 10:15:28 561

原创 Tinker接入记录(一)

    热更新是一个非常常用的功能,我们在开发的时候很常用,其实相较于各个平台,我对RePlugin是比较钟意的,不过限于目前公司业务方面SDK的需求来说,还是得先从Tinker入手,因为,Thinker可以脱离Gradle即可实现,首先是Tinker的地址:https://github.com/Tencent/tinker然后,Thinker本身有两种接入方式,一种Gradle方式,一种命令行接...

2018-07-12 21:07:05 455

原创 google-todo-mvp-clean解读

    关于clean架构其实很多人都应该听说过,但是由于clean架构的项目会显得比较复杂,而且在实际使用总其实真的要用到的很少,所以真的了解这个架构的人也比较少    其实我自己是实际在项目中使用了clean架构的,所以其实对于clean架构的一些思想是有了一些了解,不过为了加深理解以及看一下是否理解的有所偏差,所以决定对google的demo看一遍并理解一遍    首先找到google的架构...

2018-05-22 15:32:23 972

转载 Android热更新探究(二、美团Robust原理)

我们来继续探究一下热更新的一些情况,这次是美团的Robust,它的原理主要参考来InstantRun,这里大概做一下介绍从 InstantRun 说起不得不说 InstantRun 真是个好东西。目前主流的热修复框架都有或多或少的参考 InstantRun 的某些技术点InstantRun 对应三种更新机制:冷插拔,我们称之为重启更新机制温插拔,我们称之为重启Activity更新机制热插拔,我们称...

2018-05-21 15:22:39 1019

转载 Android Instant run理解

    Android studio 2.0 Stable版本中集成了Install run即时编译技术,官方描述可以大幅加速编译速度,然而我并没有感觉到,不过并不影响我去了解它的一些原理    Install run大致的原理并不复杂,可以去我写的美团的Robust原理中去看一下大致的,在这里我们来说一下更深一些的  关于动态加载,实际上Instant run提供了两种动态加载的机制:1.修改j...

2018-05-13 08:55:32 711

原创 ReactNative调试方法

    我们开发任何软件都逃不过调试,ReactNative也不例外,那么如何调试呢?    1、打开谷歌浏览器设置            2、打开扩展程序商店            3、搜索扩展程序react developer tools        4、安装    5、运行程序在运行带RN的工程后,当前页面下ios模拟器通过cmd+D(真机可以通过摇一摇),android通过Menu按键,...

2018-02-25 23:59:14 1803

原创 区块链学习(五、以太坊)

    上一篇中我们了解来比特币,那么这一篇我们来了解以太坊,首先,我们要知道以太坊是什么,在之前的文章我介绍过以太坊是属于区块链2.0的代表应用,它与1.0的区别在于区块链1.0:可编程货币---->区块链2.0:可编程金融他们之间最直接的区别在于:智能合约比特币经常被称之为“全球账簿”,尽管这个账簿记录的仅仅是一种货币——比特币的全部账单。以太坊可以被看作一台“全球计算机”:一个任何人都...

2018-02-22 17:58:03 1807

原创 区块链学习(三、分布式数据库)

我们之前说过区块链(1.0)是一个基于密码学安全的分布式账本,是一个方便验证,不可篡改的账本。通常认为与智能合约相结合的区块链为区块链2.0, 如以太坊是典型的区块链2.0那么,这个账本必定涉及到两点:    1、账本加密    2、账本的记录方式以上两点那么就是下图中分布式数据库的三点基本技术点,此图来自http://www.sohu.com/a/192269429_494933那么主要就是:哈...

2018-02-19 17:13:53 3324

原创 区块链学习(二、区块链分类)

在上一篇中,我们看到了一张来自http://www.sohu.com/a/192269429_494933的图片:我们了解到了目前区块链主要经历了三个阶段,那么我们接下来就要知道,这三个阶段主要有什么区别关于这几个阶段,我在《区块链解密:构建基于信用的下一代互联网》这本书中得到了一些概念区块链1.0:可编程货币区块链技术伴随比特币的产生而产生,其最初的应用范围完全聚集在数字货币上。比特币的出现第一...

2018-02-18 22:10:43 3428

原创 Java线程学习(一、volatile)

在实际项目中,有很多地方会需要用到线程管理,所以我开始对与线程这一块做一个学习。在Java1.5以后,提供了一个很强大的处理线程的包,叫做java.util.concurrent,在这个包下面有很多强大的处理线程用的类,那么下面就一步步来学习一、volatile这个关键字,我以前用过,可以用与线程安全,比如我现在写单例都这么写public class TestS

2017-09-26 10:11:36 325

原创 React Native中的属性与变量[二]

上一篇我们安装了React Native以及看了一下HelloWorld,那么这一篇我们来看一下属性以及变量属性当然,学习还是跟着demo学习,首先来第一个demoimport React, { Component } from 'react';import { AppRegistry, Image } from 'react-native';class Bananas

2017-08-30 19:52:45 3669

原创 React Native学习笔记[一](环境安装)

React Native是一个可以实现一套代码,多段运行的一个语言,为了以后的开发计划,所以需要学习并记录一下首先是环境的安装,其实这个并不复杂,不过对于安装环境,我觉得还是Mac环境装起来方便,而且作为双端同时开发的话,mac系统必不可少,下面我把别人主页的安装过程直接复制下来老,因为其实已经够了HomebrewHomebrew, Mac系统的包管理器,用于安装N

2017-08-26 15:49:43 516

原创 反射方法整理

最近在思考组件化结构是的模块之间的通信方式,这时候了解到安居客的方式,所以在深入了解的时候,在涉及到IOC控制反转(Inversion of Control,英文缩写为IoC)时,发现反射这一块我还是整理一下一些方法比较好,所以这里来记录一下。首先,反射机制是什么呢?反射指的是可以于运行时加载,探知和使用编译期间完全未知的类反射有什么用?程序在运行状态中, 可以动态加载一个只有名称

2017-07-09 22:10:03 400

原创 FaceBook演讲后的心得

1、实现组件化2、实现组件化之后,采用路由的方式来进行组件之间的通信组件化的组件之间的路由沟通,需要为沟通的频率比较少的情况。

2017-06-10 23:30:36 617

原创 Android 5.0,6.0,7.0重要特性

Android各个版本的特性对于开发人员来说还是很重要的,我们可以知道我们有哪些新的好用的api可用,哪些功能在编写时需要特别注意,以前知道的都比较零散,所以现在就总结一下哪些对于我们开发来说比较重要Android5.0重要新特性:Material design :Material design算是Android 系统风格的里程碑,其3D UI风格新颖,贴近人机交互11

2017-06-07 22:15:08 1270

原创 BufferKinfe绑定View的原理分析

Buffer Kinfe大家都很熟悉,用起来也很方便,那么BufferKinfe是怎么样一个实现的原理呢?我看了一下一些文章之后,理解了一下首先是第一块,如何使用一、环境配置首先需要在项目的Project的build.gradle中配置 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

2017-06-04 16:27:06 1517

原创 Glide原理

Glide是一款十分优秀的图片加载工具,究其内部机制,发现其优良性能得益于以下几点:与使用环境生命周期相绑定:RequestManagerFragment & SupportRequestManagerFragment 内存的三级缓存池:LruMemoryResources, ActiveResources, BitmapPool 内存复用机制:BitmapPool Gl...

2017-03-17 10:12:17 5734 1

原创 Android6.0权限适配

Google在Android 6.0 上开始原生支持应用权限管理,再不是安装应用时的一刀切,很多权限需要在需要时实时请求,如果你的应用还没有做好6.0以上权限的适配,那么需要先限制targetSdkVersion在22及以下当你做好处理, 就可以设置到22以上了,那么需要做哪些处理呢,首先我们得知道,哪些权限需要实时请求Android的权限分为三类:普通权限

2017-03-14 16:19:11 1329

原创 Android屏幕适配方案(下)

我在上一篇屏幕适配方案中,介绍了一下关于屏幕适配所需要知道的一些基础知识,以及一些网上的屏幕适配方面的解决方案,那么这一片的目的,就是寻找一个适合的屏幕适配方案,来保持在我们的应用再各种机型中都能有良好的表现吧在上一篇结束时,我列举了几个屏幕适配的方案,最后我认为目前来说最合适的还是http://blog.csdn.net/zhengjingle/article/details/517

2017-03-09 16:01:35 2270

原创 Android屏幕适配方案(上)

Android开发中,屏幕适配始终是第一个要解决的问题,这一点在实际写的时候其实我们都会注意,然而现在我觉得整理一下屏幕适配方面的知识以便记录,博客写的太少,始终得多记录一下首先关于屏幕,主流的屏幕主要有以下一些1280×720、1920×1080、800×480、854×480、960×540、1184×720、1440,2560名词一:在Android屏幕适配中

2017-03-03 20:20:56 8621

原创 Android周报94期(一)

周报分类的作用是用于推动我自己对新资讯的了解,同时累积一些东西这个94期主要是以下几点一、Android Support Library 24.2.0 更新。新版本不再支持 Android 2.2 (API level 8) 及以下版本这条来看还是比较明显的,Android Support Library 是用于保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,

2016-08-28 10:11:23 1172

原创 mac的熟悉,环境及命令(不断更新)

由于工作问题,近期有使用mac的需求,然后就面临了使用的熟悉,当然主要还是对命令行的运用一、首先是命令行方面的:打开终端之后命令一:cd /opt打开opt目录cd ..回到上一级目录pwd查看当前目录名称open .打开当前文件夹(会弹出窗口)open a.txt打开a.txt文件 (会弹出窗口)open  -e a.txt-e使用

2016-08-12 15:36:03 1436

原创 贝塞尔曲线的解读,可以用于弧形移动动画

关于贝塞尔曲线,就我目前所知的应用场景主要还是View的弧线运动上的运用说道贝塞尔曲线,那么我们得知道贝塞尔曲线的公式一次方公式,两点之间的:动态效果为:二次方公式,三点之间的动态效果为:三次方公式,四个点之间的动态效果为:n次方公式,按照上面自己推敲了:动态效果,我就不真的拿很多个点了,随意拿个示意一下:

2016-08-10 20:04:17 4353 1

原创 动画使用的记录

这两天写了一些动画,基本都是用的ObjectAnimator实现的,目前来说一些不涉及弧形变形等的使用来说这个足够了,当然其实,就我来说,就是把它当做一个比较高级的计数器来用了 /** * 放大动画 * @param view */ private void blowupAnim(final View view, final OnAnimOv

2016-08-10 17:31:19 576

原创 动画部分的累计(一)翻转动画的实现

这次的文章主要是有应用上的需求需要实现翻转效果,然后我在github上找到了一个实现的代码,在此基础上稍微加了一点,这是原文https://github.com/GcsSloop/Rotate3dAnimation   这里面主要是针对像素比较高的手机修复了翻转时的效果不对的问题,然后我扩展了一下针对X轴的翻转,之后发现X轴的翻转也存在翻转失真的问题,所以我运用对矩阵一知半解的知识解决了一下X轴翻

2016-08-08 16:00:17 446

原创 算法类思考累积(一)

最近心情比较郁闷,然后我其实在算法方面是绝对的短脚,所以也得累积一下,那么这此就来写一个关于算法类的好了当然也是网上看到了博客然后进行思考理解的,不是我自己想出来的,理解了之后也算是大有收获,开阔思路参考的文章:http://blog.csdn.net/jason0539/article/details/12183817题目:把M个同样的苹果放在N个同样的盘子里,允许有的盘

2016-03-06 15:38:48 670

转载 Android常用代码

转载自36个Android开发常用代码片段拨打电话123publicstatic void call(Context context, String phoneNumber) {        context.startActivity(newIntent(Intent.ACTI

2016-02-04 11:01:46 563

原创 手机相册的基本使用

我们在项目开发中,相机是一个比较常用的东西,那么,我们一般如何使用呢android中相机的使用有两种,一种是调用系统的相机来实现,另一种是我们自定义的相机来实现,那么我们第一步先来了解下使用系统的相机,当然,这种方式是很常用的,所以我在这里就简单地描述一下了了解android的相机当然是去android得官网了解是最好的可以看到在官网上面主要的是Camera和c

2016-02-02 16:57:29 877

原创 Android中使用Handler造成内存泄露

在android项目中,Handler的使用是十分的频繁的因为线程下载图片,ui更新界面是一个最常用的需求,而我也是一直用的,然而今天在进行android讨论的时候我了解到了一个点,那就是Handler会引起内存泄露,那么,这个内存泄露,是为什么会引起的呢?于是我进行了解了一下Android中使用Handler造成内存泄露的原因Handler mHandler = ne

2015-09-23 18:32:47 500

原创 android事件传递机制的详细了解

android项目开发的目的是为了让用户使用,那么用户使用的最直接的方式就是屏幕的点击操作,所以关于点击方面的事件我还是得好好了解的,所以,我开始去了解关于屏幕点击方面事件的传递机制在屏幕接收触摸事件的情况中,总体来说是两种情况1、View接收触摸事件public boolean dispatchTouchEvent(MotionEvent event)public bool

2015-09-19 13:13:32 597

空空如也

空空如也

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

TA关注的人

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