自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 资源 (4)
  • 收藏
  • 关注

原创 Dart语言学习——基本语法

配置环境和"hello world" demo 前面已经配置过flutter的环境了,能够在控制台直接使用flutter来创建和编译运行一个flutter项目。其实flutter sdk已经包含了dart sdk,其在fluuter的bin/cache目前下,名叫dart-sdk,在dart-sdk目录下也有一个bin目录,这个bin目录中就有一个dart命令命令,将dart-sd...

2020-09-14 08:46:47 693

原创 Android-gradle plugin

agp  大家常说的agp其实就是Android-Gradle-Plugin的缩写,在项目中的配置就是在根目录下的build.gradle文件中的dependencies中配置的classpath “com.android.tools.build:gradle:xxx”,在根目录build.gradle的dependencies中配置好agp后就能在任意module的build.gradle文件中apply Android提供的各种plugin,常见的就有com.android.application和c

2020-09-06 08:25:33 2922

原创 Android-gradle

./gradlew xxx:aDebug的执行流程 不管是windows还是linux或者mac os,新建一个Android工程后,都会在根目录创建一个gradlew.bat和gradlew文件,gradlew.bat是给windows系统用的,而gradlew是给linux和mac os用的。查看这两个脚本文件的代码,其实就是执行一些系统命令,可以看gradlew文件的最后一...

2020-09-02 08:33:09 294

原创 将博客搬至CSDN

将博客搬至CSDN

2020-08-25 10:02:45 144

原创 Flutter入门——环境配置

SDK配置 首先当然是上Flutter官网,找一篇最快的入门文章看看,选择MacOS系统,[MacOS上搭建Flutter开发环境] 首先临时性地配置一下Flutter的SDK仓库地址 export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.fl...

2020-08-25 10:00:29 240

原创 Android图片库-Fresco

Fresco特征 Fresco出产于facebook公司,也可以发生facebook公司的Android框架的图片加载库都是使用的Fresco,比如ReactNative。Fresco很明显的特点就是类似于MVC的结构,DraweeView作为View层,是图片的真正渲染层,DraweeHierarchy负责组件维护最终的Drawable对象,相当于是M,而DraweeControl...

2020-08-16 16:21:27 386

原创 Android-Retrofit

Retrofit的定位 Retrofit并不是作为一个网络请求库存在的,而是作为一个网络请求适配层,就比如网络请求库如果是jdbc,那么MyBatis就是Retrofit。Retrofit2底层默认使用OkHttp作为其网络请求库,而其本身只是对网络请求过程的一般操作做了封装,例如参数的构建,数据的解析以及线程切换。 Retrofit秉承Restful风格的简洁性,将每...

2020-08-13 09:05:42 113

原创 Android-Okhttp3源码解析

网络库的选择 理论上来说几乎所有的网络库都是基于Socket实现的,在Socket的基础上可以实现各种应用层的通信协议,比http、ftp等。Java实现的网络库理论上来说都可以在Android端上使用,但由于Android这种嵌入式系统的特性,对网络请求库的要求可能会更严格。 HttpUrlConnection和HttpClient在API23之后已经从系统源码中移除...

2020-08-11 09:28:08 296

原创 Android-Paging源码分析

Paging架构 再回头看一眼Paging的架构图可以看到Paing的核心是PagedList,这个PagedList携带着一个DataSource,也即产生数据的工厂,PagedList中还有分页的配置,例如每页多少个数据,距离底部多少个数据时开始自动加载下一页数据,以及设置加载与更新UI的线程等。 从触发机制与数据流向角度看,构建PagedList是在页面初始化或...

2020-08-08 11:31:59 401

原创 Android-Paging

现代App的主流结构 现在的主流App,例如微信QQ、抖音快手、头条新浪微博,又或者是滴滴美团,这些App其实从页面结构形态上只需要分两类,一类是微信QQ、抖音快手和头条微博这些,是典型的Feed流+详情页,Feed流作为详情页的入口,在主页面展示,而详情页中大块是个图文或者视频,下面是转评赞区,评论区一般来说又是个简单的Feed流。详情页中也可能还会有一些其他详情页的入口,比如有一...

2020-08-05 09:41:31 1525

原创 Android-ViewModel

MVC、MVP、MVVM,谁才是最好的架构模式 四人帮著有经典设计模式23种,是为具体场景而抽象出来的一些解决方案,而MVC、MVP和MVVM不应该被称为设计模式,如果硬要说是设计模式,也是一种更高层面的设计模式,是对整个项目在视图、控制以及逻辑三个层面的切分与相互通信的设计。 一千个人心中有一千个哈姆雷特,同样的,对于MVC、MVP以及MVVP,一千个程序员也有一千种...

2020-08-02 18:18:28 225

原创 Android-LiveData

传统回调方式 回调是一种动态调用方式,也就是调用的地方并不知道调用的代码具体有何作用,只是遵守了一个调用契约,在某种情况下就需要调用布局,最常见的回调就是观察者模式的监听器回调了。 这里所说的调用契约,具体一点其实就是一个接口,而回调的过程就是将这个接口存入调用类或者通过方法参数传入调用栈中,执行到某种情况时,就调用这个接口,因此是面向接口编程的,因此这个接口的实现只有...

2020-08-02 14:24:20 132

原创 Android-RecyclerView原理

用ListView实现一个列表 ListView是最简单的一种列表实现,通过Adapter可将数据转换为视图。以下代码是ListView的一种典型使用方法data class DemoItem(val text:String, val target: Class<*>)override fun onCreate(savedInstanceState: Bundle?)...

2020-08-01 14:53:20 327

原创 Android-Lifecycle原理

Lifecycle的用途 MVP中,Presenter经常需要感知V(Activity/Fragment)的生命周期,在相应的生命周期回调中做一些操作,比如在onDestory取消网络请求等。一般的套路是,在Activity的基类中持有Presenter的基类,重写Activity的生命周期回调方法,并在这些回调中调用Presenter的相应生命周期方法。但有些组件可能传入的参数是A...

2020-07-27 08:56:22 1921

原创 Android-Fragment源码分析

Fragment的概念 由于每个页面都要提供一个Activity来展示页面,这样在某些场景下可能太重量级了,比如说频道之间的切换,所以从Android3开始,提供了Fragment。Fragment可以理解成一种更小粒度的Activity,Fragment自己管理着一个contentView,拥有着Activity的生命周期,并且还有自己的一些额外的生命周期。在Activity的视图...

2020-07-24 19:06:56 216

原创 Android-事件分发机制

事件机制 由View的加载一文得知View并不是我们真正看到的控件,而只是指导Canvas绘制的“导演”使用View的measure、layout和draw三个方法,分别确定View的大小、位置以及View的外观样式。由于Canvas只能控制控件最后是啥样的,一般时候,我们使用控件,不仅需要其展示在界面上,经常我们还需要这些控件与用户进行交互,比如点击、滑动、拖拽等等。从View的...

2020-07-24 12:39:09 171

原创 Android-View的加载

setContentView的工作机制 Activity的setContentView方法实现中都直接调用了getWindow().setContentView方法,这里的window实际上是一个PhoneWindow的对象,PhoneWindow在Activity#attach中被new出来,传入了一个window对象,在Activity的启动过程中得知,Activity#a...

2020-07-22 09:23:02 130

原创 Activity-finish过程与result回调

### 使用方式&emsp;&emsp;通常我们使用Activity的finish方法和onBackPressed方法来结束当前Activity,其中手机按物理back键就是调用的onBackPressed,查看源码可以发现其实onBackPressed也是调用了finish。如果当前Activity是使用startActivityForResult(Intent, int)来打开...

2020-07-17 09:36:22 896

原创 Android-Activty启动过程

开始调用Activity可以调用startActivity来启动另一个Activity,通过调用栈,可追溯到Activity的startActivityForResult方法中。继续向里层跟进,是调用了Instrumentation#execStartActivity方法,里面通过ActivityTaskManager.getService,调用IActivityStackManager的star...

2020-07-16 09:35:55 268

原创 Android-从常量的进一步认识来理解R文件

在C++中,经常用const来表示某个变量是个常量,在kotlin中也是,其他语言有用let来表示常量的,Java中一般用final来表示常量。更一般的,我们经常使用static final来表示,这样其实是为了防止被反射修改值。import java.lang.reflect.Field;public class FinalReflect { private final...

2020-07-15 09:35:29 421

原创 Android-Binder机制

Binder是Android基于Linux的一种独特的IPC机制。所谓IPC,就是跨进程通信。线程是CPU调度的基本单位,而进程则是向系统申请资源的基本单位。同一个进程中的各个线程是可以相互访问内存的,因为这些线程中的变量都是在堆栈中的。例如在Java中,多个线程可以set/get同一个变量,当然,这会引起线程同步问题。进程之间是不能直接相互访问变量的,也就是不能直接通信,需要使用...

2020-07-11 22:04:20 124

原创 用Yeoman搭建react项目

npm设置淘宝镜像npm config set registry https://registry.npm.taobao.org用npm全局安装yonpm i -g yo安装react-webpack生成器npm i -g generator-react-webpack使用yo生成项目yo...

2018-11-19 20:20:50 249

原创 yo搭建nodejs项目脚手架

安装yeomannpm install -g yo安装生成器npm install -g generator-express使用生成器创建项目yo express

2018-11-19 00:13:55 967

原创 Unable to merge dex问题

不能merge dex可能会有多种问题,其中可能是包冲突了,重复导包,今天遇到了另一种可能性,就是方法数超65536也会出现Unable to merge dex的问题。至于为嘛是65535,官方解释是因为在Dalvik指令集里,调用方法的invoke-kind指令中,method reference index只给了16bits,最多能调用65535个方法,所以在生成dex文件的过程中,当方法数...

2018-10-07 21:06:27 834

原创 Android开发环境搭建——下载源码

      导师给我一个环境搭建的PPT,就开始弄,首先下载Android源码,用repo,这就是个坑,公司给配的新macbook pro,上面啥都没有,连repo都没有,要自己下载,search一波,找到一个不错的解决方案,安装repo来下载Android源码,不用完全按这个博客上来,我们只需要安装个能用的repo就可以了,mkdir ~/bin PATH=~/bin:$PATH curl ht...

2018-07-02 15:54:51 185

原创 Java范型与反射

                              Java范型与反射    Java的泛型是一种伪范型,意思是Java的范型其实只能在编译前有效,编译时编译器会擦除范型信息,因此也可能会出现一些范型导致的错误。    下面是一段经典的获取类型的代码package reflect_test;/** * Created by dengxiaobing on 2018/6/9. */...

2018-06-11 16:56:38 458

原创 搭建Redis服务器

                         搭建Redis服务器        redis是个非常好用的nosql数据库,key-value储存,并且支持多种数据类型,比如支持string,list,map,set,sortset来搭建一个redis服务器玩玩,先搭建redis环境,以后再写几个redis的web api      首先在/opt目录下下载redis源码包    wget h...

2018-06-09 01:00:23 186

原创 centos上搭建lamp

                           centos上搭建lamp     最近江汉大学一学电子商务的发小要学Web开发,就帮他在阿里云上租了一个1核2G的ESC,并帮他搭建一下环境,简单地记录一下。     将jdk的话就yum list java*列出java的相关资源    安装openjdk    yum install java-1.8.0-openjdk java-1.8...

2018-06-08 02:48:08 156

原创 centos上tomcat启动慢

网上的解释是tomcat需要产生一个环境噪声的熵池,噪声数据收集需要花较长时间解决方法是安装rngyum install rng-toolssystemctl start rngd

2018-06-07 15:39:04 149

原创 服务器搭建——ftp

                                            服务器搭建——ftp系统:Debian 4.9.51首先登录root账号,apt-get update下载安装vsftpd:apt-get install vsftpd,期间全部先Y这时已经把vsftpd安装到了系统中了,修改配置文件vsftpd.conf,在/etc目录中cd进/etc目录,ls vs*一下,...

2018-06-07 01:05:38 204 1

原创 微信、QQ、微博第三方登录

                     微信、QQ、微博第三方登录与分享    最近项目终于要完结了,甲方可能是觉得这个项目做得不错,准备推广,说他们的boss要开发布会了,我听后内心偷偷一笑,这种傻b系统还开发布会,别逗我笑,我的小心脏受不了。于是他们又过来了几次,说加个第三方登录与分享功能。嗯,加个第三方登录与分享,说得轻巧,可苦了我。而且啊,第三方登录,是要做iOS端和Android端的,...

2018-05-30 10:03:33 10684

原创 Android WebView使用时JS的坑

                                          Android WebView使用时JS的坑       这一周一直在搞学校就业指导中心的几个项目,听说是教育部有领导来视察,要我们来收拾学长以前帮就业指导中心做的几个项目的烂摊子,其实也不算烂摊子,我们算是完全重新开发吧,连以前的算法都用不了,还好当时机智,没有在以前的项目基本上改,否则这周估计都是在看代码了。言...

2018-05-13 23:08:17 140

原创 一句很有道理的话

早上突然看到一句感觉很有道理的话,大型网站技术架构核心原理与案例分析的第188页小结中的,有位软件技术前辈曾经说过“软件设计有两种风格,一种是将软件设计得很复杂,以使其缺陷没那么明显;一种是将软件设计得很简单,以使其没有明显的缺陷”。...

2018-05-01 10:03:49 331

原创 近期感受-2018年4月底

       昨天和几个学长学姐在一起闲聊,聊着聊着就聊到了实习问题,其中一个学姐是在百度做测试,听她说实习工资每天100多块,想想这怕是坑到家了哦,百度这种大厂居然每天100多块,这点钱在北京恐怕生存下去都有些困难。她说还好她在学校时的室友跟她住在一起,她们在北京实习期间也还是室友,想想两个女孩子实习期还住在一起还是不错,如果是陌生人,还是有点那啥的,什么都要防着点。       学姐讲到实习的...

2018-04-24 17:14:27 240 1

原创 java命令的坑爹经历

                                    java命令的坑爹经历      Linux实验要做一个shell脚本,用来一键化安装配置JDK+Tomcat环境      第一步就是判断本机是否装有JDK,我的想法是执行java -version命令,然后把输出存到一个变量中,然后对这个变量进行字符串判断,如果已安装JDK,就会输出相应的版本信息,如果没安装,就会输出一个...

2018-04-11 01:43:32 150

原创 linux连不上网

       写个坑爹的教训,linux安装后默认是不能连网的,如果有界面倒好说,直接在网络配置里点几下就可以了,但如果是命令行,就有点尴尬了,前几天在virtualbox上撸centos遇到这个问题了,今天跟我一起蹲图书馆的老铁做linux实验也遇到这个问题了,就简单记录一下,免得以后再遇到忘记了。       其实也很简单,只需要把网络连接设置成开机自启就行了,在/etc/sysconfig/...

2018-04-09 18:57:37 8628

原创 今日头条内推一面

                                今日头条内推一面       大半夜的,清明节放假,一室友回家了,一室友在旁边吃鸡,还有一个在玩csgo,用putty连云服务器老是连接失败,很气,还是用virtualbox安装一个centos虚拟机算了,虽然内存有点不够烧,老是爆到70%,但只要不开flash其实也还好。安装期间刚好抽个空来写写头条内推面,也算是回报广大爱技术爱分享...

2018-04-05 02:23:00 2426

原创 阿里内推总结

                                  阿里内推总结       先说说结果吧,阿里挂了,嗯,和很多小伙伴一样,我也是挂在阿里的HR手里了,阿里的HR是真的恐怖,希望将来要面阿里的小伙伴们,千万要当心HR面。不过,就像我们一个老师铁帅说的,有时候吧,真的要看缘分,可能我和阿里,真的是缘分未到吧,HR挂人肯定也是有她的考量的。今天晚上,收到了头条HR的offer通知,做A...

2018-04-04 16:44:10 9443

原创 记阿里的第二次面试

                                 记阿里的第二次面试      我记得是貌似是星期二晚上,刚好我晚上还有节项目组织管理的课,正上第一节课时阿里那边就打电话过来了,我就直接从教室里出去在楼梯窗口那里接电话。听到面试官第一句话时我就知道这次的面试官肯定大小是个官。       首先还是自我介绍,嗯,基本还是把上次的自我介绍说了一遍,然后流程和上一次电话面试差不多,也是问...

2018-03-08 13:51:23 1415

原创 记阿里的第一次面试

                              记阿里第一次面试       好像是上个星期阿里给我打的电话,是的,电话面试,我是内推提交的简历。第一次是下午2点,第二次是下午4点,我都在睡觉,我觉得下午2点到4点是最好的睡觉时间,所以一般下午没课,我都是2点到4点睡 午觉。第三次打电话大概是下午7点多了,这个时候长沙的天已经完全黑了。      室友在吃鸡,有点吵,于是我就跑到三楼到...

2018-03-05 23:16:34 3696 3

QT画股市图

使用C++的QT库来实现股票K线图的绘制,可完美集成C++库的股市数据接口

2018-01-31

Android版交通小管家

集成了阿里云的驾考服务接口、有道翻译接口以及科大迅飞的语音识别合成接口,开发的有声驾考训练Android APP项目源码

2018-01-31

Netty私协议

基于Netty实现的私协议栈,包括消息体、消息头,可高度扩展和二次开发,基于Netty的NIO高效网络编程框架

2018-01-31

Qt实现的音乐播放器

qt(c++)实现的音乐播放器。本地音乐播放器的功能基本上全部实现,并且还实现了很多网络音乐播放器的功能,比如网络音乐查找与播放,网络音乐排行榜,排行榜是爬取的酷狗音乐的。界面使用了扁平化风格,以淡雅黑为主打颜色风格。

2016-12-27

空空如也

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

TA关注的人

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