自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 看到Apache协议 BSD协议,你知道啥意思吗

在网上看开源代码,都写着 遵循xxx协议。最常见的apache 、BSD、GLP协议,都不知道代表啥。今天整理下,留个记录APache:修改代码后可以闭源,但是每个修改的文件都需要放置版权说明。BSD:修改代码后可以闭源,每个修改过的文件不需要都放置版权说明,但是衍生软件不可以用原作者名字促销。MIT:修改代码后可以闭源,每个修改过的文件不需要都放置版权说明,但是衍生软件可以用原作者名字促销。GPL:修改代码后不可以闭源,新增的代码必须保持同样的协议。LGPL:修改代码后..

2021-01-15 17:17:44 806

原创 Python学习基础

https://www.runoob.com/python3/python3-tutorial.html基础学习文字教程https://www.bilibili.com/video/BV1wD4y1o7AS?p=11基础学习视频教程安装https://www.python.org/downloads/下载对应的安装包。mac上自带python,不过是2.x版本的, 想要升级可以参考mac升级到3.x版本使用python -V查看版本编辑器可选择VSCODE或者pyChar...

2021-01-15 14:45:03 159

原创 MySql学习记录

基本概念MySQL 是最流行的关系型数据库管理系统。常用名词:数据库:数据库是一些关联表的集合。数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。列:一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。外键:外键用于关联两个表。复合...

2021-01-12 18:06:03 320

原创 Java反射机制

什么是反射机制?在运行状态中获取并调用对象方法的功能叫做java反射机制。反射机制提供5个功能:    1. 在运行时判断任意一个对象所属的类。    2. 在运行时构造任意一个类的对象。    3.在运行时判断任意一个类所具有的成员变量和方法。    4. 在运行时调用任意一个对象的方法。(最常用)    5. 生成动态代理。 一般的代码套路如下:// 获取...

2019-01-10 09:42:50 184

原创 AOSP源码中的目录表示解释

2019-01-07 10:52:00 854

原创 下载AOSP源码、编译、导入AS、运行在模拟器上

因为官方的地址需要翻墙,目前国内可以利用清华大学的镜像库:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ AOSP和Android源码的区别:AOSP+Gapps(谷歌服务包)=原生 安卓官方原生系统是指谷歌搭载在nexus系统产品上的,AOSP指的是开源安卓项目,前者集成了谷歌服务,而AOSP没有,并且可以供开发者进行编译使用 ...

2019-01-07 10:51:37 2205 2

原创 关于测试

google提倡以测试驱动开发,跟传统的产品功能驱动开发相比,完整的测试驱动开发有以下优点: 快速反馈定位错误 在开发过程中尽早排除代码故障 更快速安全的进行代码重构 稳定的快速的迭代开发,减少技术债务 当你要开发一个新的功能或者对功能进行迭代开发的时候, 你需要先写一个新的单元测试或者添加用例到之前的单元测试中!!!看一眼官方的推荐的Feature开发...

2019-01-07 10:47:05 1086

原创 Atlas

看看阿里的动态组件化: https://github.com/alibaba/atlas/tree/master/atlas-docs背景: 现在项目中都追求模块化开发、组件化开发。一个是避免代码重复开发(重复造轮子),另一个是方便维护和项目集成。 Android 项目有方法数的限制(常说的64K限制),如果项目太大或者引用了太多的三方库(依赖库的方法数量也会计算在64k中)。...

2019-01-07 10:46:11 1513

原创 使用PlantUML画时序图

程序员画时序图,个人强烈推荐用PlantUML, 写起来方便,直观.先写一个demo看下。@startuml-> CartFragment: 初始化页面activate CartFragmentCartFragment -> OperaAdapter: 初始化适配器activate OperaAdapterCartFragment -> CartViewMod...

2019-01-07 10:41:14 2087

原创 UML中表示类与类之间的5种关系

1. 继承关系      继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。2. 实现关系      实现指的是一个class类实现interface接口(可以是...

2019-01-07 10:37:41 4350 3

原创 使用PlantIUML编写UML类图

类图画起来比较麻烦,看到有使用code iris导出类图的,试了一下感觉不太好用。也有用SimpleUML的,在studio里面没找到下载包。这里介绍的是window导出UML类图使用方式,这个方式不是直接把java代码转成UML图。UML的内部关系还需要使用简单的代码标记出来。支持把效果导出png图片。个人感觉,对程序员来说,这个比visio 之类的工具要友好一些。它可以用程序员的方...

2019-01-07 10:35:50 853 3

原创 清理项目中的无用资源

项目团队合作中,总会出现一些重复或者无用的资源,特别是经过几次迭代。代码不清爽。以下步骤请依次执行: 多余的import 在项目文件目录右键->Optimize import. 点击Run。 PS:千万不要在项目正在编译的时候执行这个操作。因为编译的时候依赖关系没有完整建立,会删掉很多有用的import。 code cleanUp 在AS中使用 Analyze...

2019-01-07 10:33:37 1013

原创 RecyclerView的NO_POSITION 不是异常值!

RecyclerView 是当前代码中使用最多的控件之一。         代码编写过程中针对列表的点击事件 很多同学都会在自己定义的RecyclerView.Adapter 里面 onBindViewHolder()中添加监听事件。        这里就会发生一个很神奇的事情, 当你通过getAdapterPosition() 去拿当前选中位置的时候有时候会返回-1;导致程序崩溃...

2019-01-07 10:32:27 976

原创 Android多进程理解一

一、Java进程和线程进程是操作系统进行资源分配和调度的一个独立单位。 独立性(每个进程都有自己独立私有的一块内存空间)、动态性、并发性(多个进程可在单处理器上并发执行)并发是指在同一时间点只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。并行指在同一时间点,有多条指令在多个处理器上同时执行线程 包含在进程中。一个进程可以包含多个线程...

2019-01-03 14:40:04 238

原创 Android基础-Java基础三

参考Java常用功能的实例代码:http://www.runoob.com/java/java-examples.htmlJava8新特性:https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html      Lambda 是java8 最大的变化    Lambda 表达式:允许把函数作为一个方法的...

2019-01-02 11:16:04 117

原创 Android基础-Java基础二

你精通Java语言吗?复习以下内容,让你自信的说:是的 Java面向对象的三大特征:继承、封装、多态。  继承就是子类继承父类的特征和行为。 Java 不支持多继承,但支持多重继承。 子类拥有父类非private的属性,方法。 子类可以拥有自己的属性和方法 子类可以用自己的方式实现父类的方法 extends、implements、super、this、Override、Overlo...

2018-12-29 16:55:07 120

原创 Android基础-Java基础一

复习一下java语言基础,再有人问你  你会java吗  你可以踏实的说: 会该篇文章不适合java初学者。适合已经会使用java语言编程,想复习java语言基础的童学。Java可运行到各个平台, jre是java的运行环境,面向Java程序的使用者。  JDK是Java的开发和编译环境  Java分三个体系:JavaSE(标准平台,桌面应用)、JavaEE(企业版,支持分布式部署)、j...

2018-12-28 17:15:18 227

原创 自签名SSL证书的生成

“接口调通了” “业务逻辑完成了”。 但是你的数据是不是在裸奔呢。虽然互联网上大部分的数据都是在裸奔。但是想想自己家的数据在互联网上裸奔 是不是很别扭。要想不让数据裸奔有几个基本的要求:要改用https请求,要进行数据加密  要进行ssl身份验证。简单说一下ssl:SSL 证书遵守 SSL协议,通过在客户端浏览器和Web服务器之间建立一条SSL安全通道 一个有效、可信的 SSL ...

2018-12-21 16:24:23 2766

原创 Android SharedPreferences的替代方案MMKV

什么是MMKV?MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。https://github.com/Tencent/MMKV为什么要替代SharedPreferences?首先 安全性好。 SP实际上是把键值对放到本地文件中进行存储。如果要保证数据安全需要自己加密。其次 读写速度更...

2018-12-21 09:44:31 7576

原创 Docker配置Nginx

1. nginx 容器创建 docker run --name=nginx -p 80:80 -v /nginx/conf.d:/etc/nginx/conf.d -d nginx运行这个命令会自动下载nginx容器并且运行。 2. 编辑nginx配置cd /nginx/conf.dvim xxxxx.conf# 复制并粘贴下面的内容server { lis...

2018-12-10 14:20:52 191

原创 SpringBoot 使用Thymeleaf 开发web页面

 1. 新建一个SpringBoot项目,添加web和thymeleaf的依赖。 在 pom.xml中的代码: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta...

2018-12-05 17:16:23 374

原创 新建SpringBoot项目,并连接数据库,完成基本模块的配置

本文默认你已经了解了一些基本的概念和依赖框架。请提前安装IntelliJ IDEA。并安装Java JDK 1.81. New Project ->  选择 Spring Initializr  -> 输入项目名称-> 选择依赖 Web、JPA 、MySql、redis。 完成2. 完成之后的项目工程目录, 如图所示: 3. 添加其他依赖:打开 pom.xml...

2018-12-04 17:32:34 4163

原创 使用Docker部署 jar包 以及常用的 Docker命令

docker 优势交付物标准化。Docker是软件工程领域的“标准化”交付组件,最恰到好处的类比是“集装箱”。传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。Docker的标准化交付物称为“镜像”,它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。 一次构建,多次交付。类似于集装箱的“一次装箱,多次运输”,Docker镜像可以做到...

2018-12-04 13:26:50 3224

原创 在Lib中使用ButterKnife

想实现的效果: 代码中为了实现业务逻辑的解耦,经常使用多module进行业务逻辑处理。这就需要有一个common的库,对各类通用的弹框,组件等进行处理。 遇到的问题: 在common库中使用ButterKnife绑定控件一直报错 “Attribute value must be constant” 问题原因: library module中的R中id未用fina...

2018-12-04 10:12:14 595

原创 Git 常用命令

现在常用的代码提交都用SVN和GIT,Git相对于SVN来说有更多的优势。SVN本质上是建立了不同的文件夹保存不同分支的代码,在做代码合并和review的时候有一些痛。常用的Git管理库,包括github、 gerrit 、gitlab等。本质上都是使用git命令进行管理。 git clone a) git clone https://github.com/Alen-Liu/hell...

2018-12-04 10:09:12 112

原创 Android过度绘制解决方案

过度绘制的危害以及产生的原因,可以参考网络资料。优化过度绘制,是为了保证APP的流畅度,而APP卡顿不全部是因为布局问题导致的, 布局问题会导致渲染时间延长 从而造成卡顿。所以当有掉帧的时候,不一定是布局的问题PS:调试APP过度绘制,先打开开发者选项中的:GPU呈现模式分析和调试GPU过度绘制的开关。打开之后看这个页面的过度绘制情况。1. 页面布局上面颜色表示的含义:  ...

2018-12-04 10:07:57 885

原创 Android屏幕适配

快速适配所有Android设备。 https://github.com/JessYanCoding/AndroidAutoSize

2018-12-04 10:05:17 107

原创 Android 代码混淆

代码混淆最好在项目开始阶段就开始,便于及时发现混淆后的代码问题。可以在app/build.gradle中设置开启。 项目代码的混淆有套路:1. 默认要添加的配置-optimizationpasses 5 # 指定代码的压缩级别-dontusemixedcaseclassnames # 是否使用大小写混合-dontskipnonpubliclibraryclasses...

2018-12-04 10:04:18 104

原创 调试Kotlin 例子Demo的时候遇到了坑

这段时间想研究Kotlin,从GitHub上找到了 kotlin的一个实例:Kotlin-for-Android-Develpers-master。下载之后发现编译不过。报错xxxxx\Kotlin-for-Android-Developers-master\app\build.gradle: Failed to resolve: common解决办法:修改 根目录的build.gradle中的r...

2018-06-12 10:57:18 1226

原创 android 自定义 PDF view

前一段时间帮朋友做了一个在android 端查看PDF文档的功能,发现PDF文档的处理,网上资料有点混乱。研究了很长时间,也没有很好的成熟的方案。         针对这些文档的处理, 一定是有一些特殊需求的, 比如 实现画笔标注, 实现预览, 实现各种自定义的滑动操作。         本文只是针对PDF类型的文档, 其他类型的文档不支持。                  关于

2016-05-12 15:21:09 2457

原创 上传文件的jar包 + 简单的可执行 jar 文件包制作

最近公司ftp 上传有点问题,老是会出错,为了保证上传的准确性(有时候发布版本需要先上传ftp),特意做了一个上传的jar demo。基本逻辑:  上传文件  并记录文件名, 之后下载刚才上传的文件, 对比上传和下载的MD5值, 之后删除本地下载的临时文件。import org.apache.commons.net.ftp.FTPClient;import org.apach

2016-04-15 11:43:43 1690

原创 gerrit 搭建和使用

git + gerrit 用于代码 pre-review 以及提交,相对来说比较方便、简单和实用。 For service(gerrit 服务器的安装):CentOS6下安装gerrit: 1. 先查看是否安装了JDK。         运行java-version查看版本信息 ,如果没有安装 自己安装下。安装这个的过程我就不细说了,一般公司服务器上面都安装了这个。2.

2016-04-07 18:49:45 3128

原创 android studio 导入项目太慢

今天从github上下载了一个项目, 发现导入Android studio的时候 发现好慢。找了下解决办法,自己留个记录原因: 下载的项目和你当前已经下载的grandle 不一致, 导致导入的时候到网上下载相应的版本。 坑爹吧。。。我能不能连上google的服务器还难说呢。 让我去那边下载东西。。。还几十M。。。最简单的办法,修改你这个需要导入的项目。需要修改的文件

2016-03-18 22:23:05 8978 2

原创 Android 三种sendBroadCast的方式对比

作为android 的四大基本组件之一的 BroadCast Receiver,是进行进程间通信的重要手段,几乎所有的应用都会注册和发送各种不同的intent, 那么有一个问题,你是否了解Intent?  作为延伸,我们需要了解一下sendBroadcast()  / sendOrderedBroadcast() /  sendStickyBroadcast() 这三个方法的不同。1)

2015-12-07 16:10:30 43176 3

转载 About ANR and OOM

1. ANR    1.1 什么是ANR? ANR(Application Not Responding)        在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:ApplicationNotResponding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用

2015-11-19 14:36:08 1512

原创 使用android studio 查看 android 的源代码

以前都使用 source insight 查看源代码.   但是一直使用的都是盗版的.  决心改换成studio.        Android 源码比较大. 相对于Eclipse . 使用studio 会更好一些.        我的电脑以前安装过Eclipse的开发环境, 所以 JDK 和ADT 都有. 不需要重新配置.        首先, 下载一个  android s

2015-09-26 17:33:40 1230

原创 Android 同时播放缩放动画和位移动画 时, 位移的路径会发生偏移.

不能理解的bug.       Android 同时播放缩放动画和位移动画 时, 位移的路径会发生偏移.        Animation mTranslateAnimation = new TranslateAnimation(xxxxxx);// 移动参数 自己写        mTranslateAnimation.setDuration(1000);        An

2015-08-27 17:08:59 1684

原创 android 调试 报错

今天打开eclipse 进行调试的时候突然出现了报错,报错信息如下:The connection to adb is down, and a severe error has occured. [2013-06-15 09:36:56 - HelloOPone] You must restart adb and Eclipse. [2013-06-15 09:36:56 - Hello

2013-06-15 10:29:43 748

原创 android 开发 checkBox的显示和隐藏

首先使用findviewbyid得到这个checkbox;      CheckBox pengRadioButton=(RadioButton) findViewById(R.id.peng);           然后设置可见性 pengCheckBox.setVisibility(View.GONE);pengCheckBox.setVisibility(View.V

2013-05-22 16:57:09 2690

原创 Eclipse不能启动

今天早上,我开始了我的机器,并试图打开Eclipse。而不是打开,我看到这样的: 查看日志文件的显示一下报错:!ENTRY org.eclipse.osgi 4 0 2007-04-09 08:31:36.796!MESSAGE Application error!STACK 1java.lang.NoClassDefFoundError: org/eclipse/core/re

2013-05-22 10:37:33 4843

空空如也

空空如也

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

TA关注的人

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