自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Retorfit源码分析

前言:站在巨人的肩膀上聊聊我对Retorfit这个联网框架的了解。诸多好处我就不详细说明了,两句话来总结一下,Retorfit是一个面向接口的注解型联网框架,底层实现原理就是Java的动态代理。 1.基本使用和建议现在网上对于Retorfit的使用姿势已经足够多了,不过我还是建议去Retorfit官方学习。虽然Reorfit已经足够简单了,但是往往并不能满足我们的需求,建议在这基础之上,根据自

2017-09-13 00:49:42 510

原创 工欲善其事必先利其器(Android Studio 插件编写)

前言:之前有篇文件讲的是模块化开发,一个项目整体结构可以这么设计,模块化开发中每个人的习惯都不一样,有的人习惯MVP,有的人习惯MVVM或者有其他的app架构,对整个app相对底层的抽象规范的时候,上层编写的类的总是基本一直的,大家都得遵循某一些行为规范。我个人认为,编写父类的目的一定不是为了实现类可以少写代码,而是去规范子类的实现,最理想的状态就是同行看了你的一个activity的整体编写,就能知

2017-08-26 14:53:10 417

原创 Android模块化开发

前言项目越做越大,每次编译的时间越来越长,体验特别不好,在加上协同开发的时候,项目管理问题,因此开始了我的Android项目的模块化开发之旅。1.模块化开发的优势单独模块开发,编译迅速,调试方便模块之间相互解耦,协同开发不容易出错实际使用后,项目打包后的体积也小了很多2.遇到的问题和解决方案模块之间的数据传递 模块之间使用ARouter进行跳转采用事件总线的方式,自定义RxBus进行数

2017-08-18 20:21:02 2306

原创 Centos7修改ssh端口

需要用的命令:semanage, 找不到的话执行安装命令:yum install policycoreutils-python执行 semanage port -a -t ssh_port_t -p tcp 8999 此处是修改默认22端口为8999执行 sudo vi /etc/ssh/sshd_config 进行修改, 这里需要把下面的listenaddress注释解除打

2017-04-08 22:11:15 599

原创 Java中堆内存和栈内存

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中

2017-02-16 10:03:33 297

原创 内存分配

Java为对象分配空间的任务等同于把一块确定大小的内存从Java堆里面划分出来。假设Java堆中内存是绝对的规整的,所有用过的内存都放在一遍,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等的距离,这种分配方式称为指针碰撞。假设Java堆中的内存并不是规整的,已使用的内存和空闲的内存相互交错,那么就没有办法简单的进行指针

2017-02-08 18:16:21 308

原创 mysql开启远程服务

原因:虚拟机上ubuntu系统需要访问主机的mysql服务 mysql默认不允许远程服务如果你想允许用户root从ip为192.168.2.3的主机连接到mysql服务器,并使用mypassword作为密码GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.2.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;使用

2017-01-10 15:40:31 396

原创 ubuntu 配置tomcat

记录:tomcat配置正常,可以在bin目录中运行tomcat 但是无法在idea中获取到目录,原因是idea没有权限访问tomcat的安装目录 解决办法;修改tomcat安装目录的权限 :sudo chmod -R 777 *

2017-01-09 16:09:06 342

原创 基于VM虚拟机搭建ubuntu

工具:vmware workstation 12 proubuntu-16.04-desktop-amd64.so目标:中文版的ubuntu 步骤:起因:直接导入.so文件创建ubuntu系统默认是英文版的,而且不给你任何选择的机会目标: 安装中文版的ubuntu 解决方案: 先创建空白虚拟机,最后在按照普通安装系统的方式进行安装系统。等到正常安装完毕之后将引入的.so镜像文件移除。之

2016-12-20 09:50:05 475

原创 理想的设计特征

1.最小的复杂度 设计的首要目标就是要让复杂度最小。要避免做出“聪明的”设计,因为“聪明的”设计常常都是难以理解的。应该做出简单且易于理解的设计。如果你的设计方案不能让你专注于程序的一部分时安心的忽视其他部分的话,这一设计就没有什么作用了。2.易于维护 易于维护意味着在设计时为做维护工作的程序员着想。请时刻想着这些维护程序员可能会就你写的代码而提出的问题。把这些程序员当前你的听众,进而设计

2016-11-13 23:08:33 518

原创 Android JNI 入门

前言 写在准备面试做直播的公司前。。。 JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。使用ja

2016-07-12 20:59:28 511

原创 webView设置cookie

公司的项目中采用原生加上H5的方式进来开发,遇到的第一个个问题就是给我们的webview设置cookie保存状态。就是将token保存到cookie中去。代码如下: 加载url @Override public void loadUrl() { String index_url = ACache.get(self).getAsString(Config.INDEX_U

2016-06-14 11:39:59 1530

原创 面向对象设计方式的特性

万物皆为对象 将对象视为奇特的变量,它可以存储数据。除此之外,你还可以要求它在自身上进行执行操作。理论上讲,你可以抽取待解决的问题的任何概念化构件,将其表示为程序中的对象。程序是对象的集合 它们通过发送消息来告知彼此所需要的。要请求一个对象,就必须对该对象发送一条消息。更具体的说,可以把消息想象为某个特定对象的方法的调用请求。每个对象都有自己的由其他对象所构成的存储 换句话说,可以通过创建包含

2016-06-12 21:31:08 473

原创 打造Android的MVP模式

1.概述代码是两层开发,业务逻辑被内嵌与用户界面中,我们为了更好的维护,有必要将行为分离出来。我认为MVP模式就是基于这样一个理念。每个人都有一个自己的MVP模式。2.我所理解的MVP模式Presenter:交互中间人,处理业务逻辑,一个领域类,当需要View的 时候通过接口通知ViewView :用户界面,处理视图的显示,逻辑交给Presenter,一个展现类Model:数据的存储3.

2016-05-26 23:42:06 895

原创 数据绑定库Data Binding的使用

一.介绍 最近写项目发现一个特别好用的数据绑定框架,最主要的还是Android官方推出的-Data Binding Library。本人一向是有google推荐的就不会考虑去github上找其他框架。数据绑定框架让我们不再findViewById,烦人代码也增加的代码的耦合性,现在我们就应该和findViewById说再见了。也许很多人用了一些注解框架也不用,但是他需要写注解啊,还是一样的多,还不

2016-05-11 15:38:05 1765

空空如也

空空如也

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

TA关注的人

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