自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Flutter探索与实践

Flutter是google近年来新推出的跨平台移动UI框架,可以在ios和Android系统上快速构建出高质量,体验较高的原生界面,同时Flutter还将会作为google新一代操作系统Fuchsia的Toolchain,这对Flutter的未来发展前景是一个强有力的支撑。写这篇文章时,中国 GDG 2018 刚刚落幕,Flutter团队在大会上发布了release之前的最后一个preview版...

2018-09-25 15:56:42 759 2

原创 Android 下载器

MusesMuses是一个使用方便的Android下载器框架,作为一个刚毕业进入公司的职场萌新,接到这个组件开发任务的时候内心是十分忐忑的,经过一周的开发,基本形成了1.0版本,后续会对Muses进行不断优化升级,增加更多特性,欢迎提出issue。项目地址Muses有以下优点:支持在Activity、Service、Fragment、Dialog、popupWindow、No...

2018-05-02 17:27:28 556

原创 关于Flutter有几点要说

关于Flutter有几点要说Flutter 是什么Flutter是google最近正式推出的一款跨平台的移动开发框架,目前处于Beta阶段。Flutter将会作为Google最新移动系统Fuchsia OS的app framework。Flutter的特点Dart可以运行前编译(AOT),在开发flutter应用的时候布局文件会直接通过源码编写node tree,从...

2018-03-08 15:46:17 3081

原创 ConstraintLayout使用详解 上

传统布局缺陷<ScrollView> <LinearLayout> ... ... <LinearLayout> <LinearLayout> <LinearLayout/> <LinearLayout/> <LinearLayou

2017-12-27 22:47:12 3110

原创 Android进阶(六)Glide解析-加载流程

1 引言一直想要阅读Glide源码,但是苦于时间和功力都不够,总是断断续续的,趁着现在有一些空暇时间,来简要分析Glide的源码。Glide的实现太过复杂,不可能做到面面俱到,如果每一行都细致分析,很容易陷入作者的优化细节中去而偏离主线,因此只针对几个主要功能做解析即可。以下分析全部基于Glide v4.9.0。2 初始化Glide最常见的用法就是如下一行代码:Glide.with(co...

2019-03-14 15:19:49 743

原创 Android进阶(五)DataBinding解析

1 概述在上篇文章Android进阶(四)LiveData解析中讲到了关于JetPack框架的LiveData解析,这是一个基于ViewModel和观察者模式的实践。这篇文章要讲的DataBinding同样可以认为是基于ViewModel的实践,同时做到了数据和UI的双向绑定。DataBinding允许你使用声明式的而不是以编程方式将布局中的UI组件绑定到应用程序中的数据源。免去了编写find...

2019-03-14 15:19:02 1663

原创 Android进阶(四)LiveData解析

1 概述LiveData是一个可被观察的数据持有类,一般的数据类不同,LiveData是生命周期感知的,数据类的生命周期可以和其他app组件的生命周期保持一致,例如Activity,fragment和service。这保证了LiveData仅仅会更新处在活动状态的组件。LiveData可以被看成观察者模式的实践,LiveData是一个被观察的对象,其他组件会订阅对它的观察,当组件处于Start...

2019-02-26 09:26:21 697

原创 Android进阶(三)ButterKnife源码解析

1 概述ButterKnife是Android用于视图绑定的依赖注入框架,用注解来生成模板代码。通过分析ButterKnife源码可以加深对注解使用以及依赖注入概念的理解。2 ButterKnife使用2.1 引入依赖在Project的build.gradle文件中添加依赖:dependencies { implementation 'com.jakewharton:butterk...

2019-02-26 09:25:47 795

原创 Android进阶(二)View的测量、布局、绘制流程

1 引言在上一篇文章Android进阶(一)View体系中,分析了Android源码关于activity启动创建view的过程,在WindowManagerGlobal的addView方法里面调用了ViewRootImpl构造方法,构造root,同时在ViewRootImpl里面会调用一个performTraversals()方法,看一下源码:private void perform...

2019-02-26 09:25:12 279

原创 Android进阶(一)View体系

1 坐标系Android系统里面有两种坐标系:Android坐标系、View坐标系。1.1 Android坐标系Android的坐标系是以手机上可见的屏幕左上角顶点为坐标系原点,但是xy轴的方向和我们以前知道的有所不同,需要注意,从原点向右为x轴正方向,而从原点向下为y轴正方向。android.view.MotionEvent下面有两个方法getRawX()和getRawY()...

2019-02-26 09:24:39 501

原创 Flutter仿网易云音乐:播放界面

写在前头本来是要做一个仿网易云音乐的flutter项目,但是因为最近事情比较多,项目周期跨度会比较长,因此分几个步骤来完成。这是仿网易云音乐项目系列文章的第一篇。没有完全照搬网易云音乐的UI,借鉴了其中的黑胶唱机动画。先贴上项目地址 https://github.com/KinsomyJS/flutter_netease_music初步效果图思路这个界面实现起来其实是比较简单的,大致分...

2019-01-08 16:50:04 7250 7

原创 Java集合 fail-fast机制

这是《码出高效》的第一篇笔记,会记录第六章“数据结构与集合”的6.7小节的一个知识点:fail-fast机制。因为之前的几个章节都很快速的看过去了,没有来得及写下来心得,后续会慢慢补上。之所以第一个讲fail-fast是因为对于我来说之前从来没有意识到这样的一个问题会造成严重的危害。fail-fast介绍fail-fast在java里是对集合执行遍历操作时的错误检测机制,常常出现在...

2018-12-28 10:14:36 189

原创 从头开发一个Flutter插件(一)开发流程

文章由来在上一篇分享的文章Flutter 天气应用里我介绍了一个用flutter编写的天气预报app,里面有一个需要完善的功能就是根据当前定位所在城市显示天气信息。由于没有办法使用gms(google mobile service)的缘故,flutter官方提供的基于Google map的定位package没有办法直接引入到项目中使用,因此我就想到基于高德地图的sdk来做一款相同的插件,既可以为...

2018-12-10 10:17:30 2767 2

原创 Flutter Platform:如何通过原生view创建widget

在这篇教程里,我们将探索如何创建一个TextViewPlugin,在plugin里我们会暴露一个android原生TextView作为flutter组件。在进入代码实现之前需要注意以下几点:目前只支持Android(作者文章发布于2018.9.7,目前已经支持ios)。需要android api版本在20及以上。嵌入Android views是一个昂贵的操作,所以应当避免在flutter...

2018-12-10 10:07:47 3079 2

原创 linux之sed

最近在复习shell脚本,看到《linux命令行与shell脚本编程大全》第19章关于sed的介绍,下面做了一些用法总结。1 初识sedsed编辑器被称作流编辑器,它和vim这种的交互式文本编辑器不同,是根据命令来处理数据流中的数据。会执行下列操作:一次从输入中读取一行数据(重复该操作直到全部行被读取完)根据编辑器命令匹配数据按照命令修改数据流中的数据将新数据输出到STDOUT(标准...

2018-11-21 16:46:42 183

原创 从头开发一个Flutter插件(二)高德地图定位插件

在上一篇文章从头开发一个Flutter插件(一)开发流程里具体介绍了flutter插件的具体开发流程,从创建项目到发布。接下来将会为Flutter天气项目开发一个基于高德定位sdk的flutter定位插件。完整代码在git仓库里 https://github.com/KinsomyJS/location_plugin申请key首先先进入到高德地图定位sdk文档内下载定位sdk,并按要求申请a...

2018-11-12 17:13:52 6326 1

原创 Flutter实践:天气预报

Muses是一款用Flutter编写的天气预报应用,代码会持续更新…使用api为魅族天气api,感谢 https://github.com/jokermonn/-Api功能支持全国地级市天气预报未来五天天气预报查看支持生活指数查看支持自定义更换背景保存城市天气列表未完成保存一系列背景根据天气情况动态更换小时级天气曲线图定位自动更新天气目前还在学习中,代码较粗糙,...

2018-10-17 12:47:10 1281

翻译 【译】异步编程:Futures

关键点dart是单线程语言同步代码会阻塞你的程序使用Future对象来执行异步操作在async函数里使用await关键字来挂起执行知道一个Future操作完成或者使用then()方法在async函数里使用try-catch表达式捕获错误或者使用catchError()方法可以使用链式操作future对象来按顺序执行异步函数dart是一个单线程的编程语言,如果编写了任何阻塞执行...

2018-10-08 15:14:17 305

原创 Flutter在混合项目中的构建和集成

写在前头在之前的一篇文章《Flutter的探索与实践》中关于Flutter如何构建到现有项目这一节没有详细说,这篇文章将会介绍Flutter在混合项目中的构建和集成方面踩过的坑以及解决方案。目标扇贝现有的项目是原生混合React Native,并且是以组件化的架构存在,现在想在一些页面上用Flutter进行重构,想要在新的Flutter项目上集成以前的所有代码肯定是不现实的,同时又不想将Fl...

2018-09-28 11:29:20 4229 1

原创 node之旅-day7

Connect 框架Connect是一个第三方模块,node默认没有带,所以需要自己安装。npm install connect工作机制Connect是一个中间件框架,里面提供了很多中间件组件,每个中间件组件实际是一个JavaScript函数,一个中间件拦截请求并做出响应,然后传递给下一个中间件组件,Connect用分派器(Dispatcher)将中间件串联在一起。...

2018-07-17 17:42:21 211

原创 node之旅-day6

MongoDBMongoDB将文档存储在集合中,每个文档都有不同的shcema,不用预先定义。安装 MongoDB首先在机器上用homebrew安装MongoDB数据库更新homebrewbrew update安装MongoDB安装二进制文件brew install mongodb安装最新版的releasebrew insta...

2018-07-09 14:42:03 202

原创 node之旅-day5

node中的数据存储接下来的几天将要学习node程序中的数据存储数据存储的选择存储数据无需安装和配置DBMS用关系型数据库存储数据,例如MySQL和PostgreSQL用NoSQL数据库存储数据,例如Redis,MongoDB和Mongoose无数据库服务器的数据存储如果存储数据不需要对DBMS进行维护是很方便的,例如内存存储和文件存储,免去了安装和配置DBMS...

2018-07-02 17:31:06 239

原创 node之旅-day4

表单接受用户输入content-type表单提交请求所带的Content-Type有两种: * application/x-www-form-urlencoded:html表单的默认值 * multipart/form-data:表单中含有文件或者非ASCII或二进制数据时使用简单的todo samplevar http = require('http');var...

2018-06-14 10:36:44 241

原创 node之旅-day3

Node Http 底层api下图是Node Web陈程序的内部结构,核心是底层api。 node的http请求会返回request 和response的回调函数,服务器没收到一个新的请求,都会用新的req和res对象触发回调函数,node会解析htt头并放到req中返回,但是默认不会解析body。需要收到调用res.end()去结束响应,否则会超时或一直处于打开状态。修改...

2018-06-11 19:51:42 205

原创 node之旅-day2

异步流程控制js是单线程的语言,不会出现像java一样的多线程锁的问题,一次只能执行一个函数。nimblenimble是一个流程控制库,可以串行、并行执行方法等 项目地址 http://caolan.github.io/nimble/ 下面是一个 nimble的demo:并行下载两个文件,最后将两个文件用tar命令集合起来。var flow = require('nim...

2018-06-08 09:54:10 318

原创 node之旅-day1

day1 node in action chapter3exports 和 module.exports的区别exportsvar module = require('module');当require一个module后,require函数会返回这个module中exports对象中的内容,然后通过module.xxx便可以使用模块内暴露的内容。module.e...

2018-06-07 11:18:12 225

翻译 Clean Architecure

引入我们都知道编写一个高质量的软件是困难并且复杂的。它不仅需要满足需求,还要足够健壮,可维护,可测试以及灵活,这样才能够适应产品的不断变化。这时就提出了一个叫做clean architecture的概念,这个架构可以被用来开发任何的软件应用。好的架构都做了一件事:关注的分离。将代码分成多个层次结构,至少有一层是业务层,其他层次都为接口。clean architecture的概念很简...

2018-05-07 23:37:56 275

原创 Android gradle 打印包结构

今天为了解决包重复依赖的问题。使用了一个命令 ./gradlew dependencies :app:dependencies &gt; dependencies.txt 可以用来打印包结构的完整树形图。 这样就可以方便的查看使用的三方包在哪里被重复依赖了。...

2018-04-16 16:12:14 660

原创 Android Charles https 证书固定 防抓包

Android Charles 证书固定最近在做公司的接口全部换上了https,我们的应用也随之进行了升级,接入https。但是在使用charles进行接口抓包调试的时候就出现了一些问题。我的计划是既要能使我们的app在release和debug下都能进行charles抓包调试定位问题,还要能有效的防止其他人对应用进行抓包获取数据。之前做法由于我们使用了okhttp框架,在...

2018-04-02 18:01:30 4123

原创 javax.net.ssl.SSLProtocolException: SSL handshake aborted

问题出现前几天在接入新版api的时候,在Android 4.4版本的机型上测试的时候,网络请求捕获了一个异常,SSLProtocolException,具体的异常信息是com.base.http.exception.NetworkRespException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=

2018-01-26 17:46:45 10770

转载 Android Studio 开发Android依赖方式整理

Compile compile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。Provided Provided是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk。APK 只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译...

2017-12-20 17:28:47 286

原创 Android Textview和Edittext文本选中样式修改实战

修改Textview和Edittext文本选中样式今天接到一个任务,因为现在的上线APP的搜索框在文本被选中的时候,高亮背景色和指示器的颜色与主题颜色相同,因此导致了用户使用上的困难,并且文本功能菜单也和文本框太靠近导致指示器可触面积太小,所以需要对样式进行修改。我隐约记得源码中有相关属性可以修改这些bug,因此我翻看了EditText的源码,因为edittext继承自Textview,于是就去T

2017-11-28 12:46:58 5235 1

原创 hacking exposed 作业

Homework CH100540170伏勁松(30 points) Google Dork1)    Using googledork to find atarget which can be injected.2)    Explain why this targetcan be injected.3)    Explain how to avoid it.Solu

2017-05-15 21:04:16 765

原创 SDN實驗(一) Mininet使用

在nctu交換,學到了SDN實驗。實驗目的:•在mininet裡面建立網路拓樸, 將最短路徑搜尋演算法加上QoS (即建立的最短路徑要符合一頻寬需求)的程式執行在另一VM當作一NFV.•NFV VM會根據拓樸找出路徑, 然後透過REST API告訴Floodlight controller要如何設定flow table首先先使用了Mininet。•Mininet

2017-04-25 19:14:58 2339

原创 将博客搬至CSDN

将博客搬至CSDN

2017-04-24 09:30:08 302

原创 ML assignment #1

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 17.0px "Trebuchet MS"; color: #000000 }p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; color: #000000 }p.p3 { margin

2017-04-24 09:30:03 379

原创 应我校园0.8.3上线

看《硅谷》,创业总是一件令人无比向往的事,在大学有一个团队也是我一直梦寐以求的。曾经几次不算成功创业让我几乎断掉了这样的念头,应我校园应该是我最后一次尝试了。希望它能走的很远很远。为了这个作品,在我们这样一个本科学校,组建团队的难度可想而知,开发组也是人手不足,但是两个多月的努力始终没有白费,这个“孩子”终于还是诞生了。在学校引起了不小轰动。我想不管结果怎么样,都会成为大学生活的最美好的

2017-04-24 09:29:58 252

原创 分享一个java线程专栏

专栏 : java线程基础转载自 http://blog.csdn.net/column/details/yinwenjiethread.html专栏内容:1、线程基础:线程(1)——操作系统和线程原理2、线程基础:线程(2)——JAVA中的基本线程操作(上)3、 线程基础:线程(3)——JAVA中的基本线程操作(中)4、线程基础:线程(4)——JAVA中的基本线程操作(下)5、线程

2017-04-24 09:29:53 423

原创 《数据挖掘导论》学习笔记(二)

数据挖掘导论 第四章分类:基本概念、决策树与模型评估分类的定义:分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y。目标函数也称为分类模型,有两个主要目的:1、描述性建模 2、预测性建模分类适用于预测两元或标称类型的数据集,即离散的数据集。决策树分类法选择最佳划分的度量通常都是根据划分后子女结点不纯性的程度。不纯的程度越低,类分布就越倾斜。不纯性度量的

2017-04-24 09:29:48 499

原创 《数据挖掘导论》学习笔记(一)

四种主要的数据挖掘任务: 1、预测建模任务  分类:用于预测离散的目标变量回归:用于预测连续的目标变量 2、关联分析 3、聚类分析 4、异常检测主要的数据质量问题:存在噪声和离群点,数据遗漏、不一致或重复,数据有偏差,或者在别的方面,数据不代表描述所设想的现象或总体情况。测量标度:将数值或符号值与对象的属性相关联的规则(函数),通常将属性的类型称为测量标度的类型数据集主要分为

2017-04-24 09:29:43 1869

空空如也

空空如也

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

TA关注的人

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