- 博客(84)
- 资源 (2)
- 收藏
- 关注
原创 远程jvisualvm连接遇到的坑
远程jvisualvm连接遇到的坑本次尝试主要遇到的问题就是端口问题,jmx连接时服务器会开启两个端口,之前看到的文章基本都是就说了一个端口,而领一个端口会随机监听,故而导致一直连接失败下面是配置:-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=自己的ip地址-Dcom.sun.management.jmxremote.port=jmx连接时使用的port -Dcom.sun.management.jmxremote
2020-05-12 14:32:02
806
原创 el-upload图片上传前端压缩(auto-upload版本)
标签中添加before-upload的hock <el-upload class="avatar-uploader" :action="baseUrl + '/v1/addimg/shop'" :show-file-list="false" :on-success="handleShopAvatarScucess" :before-upload="befor...
2020-03-11 16:56:40
3815
转载 Nginx的基础功能使用
Nginx1.静态HTTP服务器2.反向代理3.负载均衡4.虚拟主机5.FastCGINginx1.静态HTTP服务器server{ Listen 80; Location { Root /usr/share/nginx/html }}2.反向代理server { listen 80; ...
2018-07-12 10:54:39
250
原创 Vim快捷键
Vim快捷键单键 快捷键 功能 r 倒序 s 按各种类型排序 S 特定标示优先级排序 - 回到上一层 u 回到之前的位置 a 只显示某些文件,跟c-h配合使用 d 在当前目录新建文件 D 删除当前文件 i 使当前目录变成可扩展 I 显示隐藏头部的内容 ...
2018-06-19 09:50:53
256
原创 OkHttp请求解读
OkHttp请求解读一.基础内容1.请求体访问协议, 响应码, 描述信息, 响应头, 响应体2.使用代码1.get同步和异步方式Request request = new Request.Builder() .url("http://publicobject.com/helloworld.txt") .build();Response res...
2018-04-12 15:29:56
372
原创 Java中使用DecimalFormat保留两位小数,同时不保留0
import java.text.DecimalFormat;/** * Created by laozhu on 2018/4/10. */public class Helo { public static void main(String[] s){ DecimalFormat decimalFormat = new DecimalFormat("0.#...
2018-04-10 11:57:02
9023
原创 Android中当item数量超过一定大小RecyclerView高度固定
Android中当item数量超过一定大小时,将RecyclerView高度固定
2018-04-09 16:30:18
17668
8
原创 java线程池的4种拒绝模式
简介在线程池的使用中,当任务数量超出之前设定的线程池大小(既:核心线程数+等待队列大小),系统需要采取相应策略来应对新进来的任务。当前java线程池有4种不同的策略来应对这种情况。拒绝策略1.AbortPolicy In the default {@link ThreadPoolExecutor.AbortPolicy}, the handler throws...
2018-04-08 11:19:24
477
原创 python爬虫scrapy的使用
简介本文将记录一次使用scrapy进行网页数据爬取的经历。环境与安装环境python – 3.6.1(区别python2和python3就行了,两者的语法在有些地方有区别) scrapy – 1.5.0 (这个是根据你的python版本来选择的) twisted wheel pywin32安装python 这里就不再赘述了,无非就是到python的官方网站下载相应安装包安装。如果要看的话,
2018-02-08 16:45:00
317
原创 Dagger2全面解析
Dagger2的好处相关标签标签使用方式注入方式不同类的关系编译后的生成文件与原文件及关系图注入路径Scope用于划分作用域各标签的意义Singleton的单例模式是如何起作用的我只是个栗子Qualifier的巧用指哪打哪Dagger2的好处依赖的注入和配置独立于组件之外。因为对象是在一个独立、不耦合的地方初始化,所以当注入抽象方法的时候,我们只需要修改对象的实现方法,而不
2017-08-18 16:29:09
373
原创 Android自动化测试
Android自动化测试Android自动化测试摘要Monkey测试简介使用方式效果展示更多参数介绍可能会遇到的问题单元测试简介使用方式Junit标签解析Mockito使用方式UI测试简介使用方式标签解析总结摘要Android自带了很多方便的测试工具和方法,包括我们常用的单元测试、UI测试、Monkey测试、Robotium测试、MonkeyRunner测试、s
2017-06-30 16:54:35
531
原创 来看看compileSdkVersion, minSdkVersion, targetSdkVersion这三兄弟
选择你自己的 compileSdkVersion, minSdkVersion, and targetSdkVersion当你将一个App发布出去之后,也许马上Google又发布了一个新的Android版本。那这是否就意味着你发布的App会出现一些版本上的问题。当然这并不会困扰我们,因为Android是向前兼容的—向前兼容即旧版本能够适应新版本的应用—对Android而言就是在旧版上开发的应用当我们
2016-11-30 16:25:41
418
原创 Android gradle: buildtoolsVersion vs compileSdkVersion
首先来一段从stackoverflow上看到的英文解释 compileSdkVersion is the API version of Android that you compile against.buildToolsVersion is the version of the compilers (aapt, dx, renderscript compiler, etc…) that you
2016-11-30 11:14:26
802
转载 Activity启动过程全解析
Activity启动过程一些基本的概念ActivityManagerServices,简称AMS,服务端对象,负责系统中所有Activity的生命周期ActivityThread,App的真正入口。当开启App之后,会调用main()开始运行,开启消息循环队列,这就是传说中的UI线程或者叫主线程。与ActivityManagerServices配合,一起完成Activity的管理工作Appli
2016-11-28 14:44:34
500
转载 android调用高版本api函数的兼容性问题
有时候代码中调用的一些api函数对api版本有要求,比如ListView的smoothScrollToPosition函数,该函数要求android api版本在8或者以上才可以使用,即要求用户的手机必须是android2.2及其以上的才行。有些同学可能会这么做[java] view plaincopytry { final int mVer
2016-11-16 22:56:27
564
转载 Android程序Crash时的异常上报
转载请注明来源:http://blog.csdn.net/singwhatiwanna/article/details/17289479前言大家都知道,android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况。当crash发生时,系统会kill掉你的
2016-11-16 22:53:44
311
转载 知道这20个正则表达式,能让你少写1,000行代码
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/; v
2016-11-16 22:49:15
209
转载 Java核心技术点之内部类
为什么要使用内部类内部类就是定义在一个类内部的类,那么为什么要使用内部类呢?主要原因有以下几点:第一,内部类中定义的方法能访问到外围类的私有属性及方法;第二,外围类无法实现对同一包中的其他类隐藏,而内部类可以做到这一点;第三,匿名内部类在我们只需使用该类的实例一次时可以有效减少我们的代码量。关于以上三点,我们在下文中会举出具体例子进行进一步的说明。如何使用内部类使用内部类访
2016-11-16 22:44:53
406
转载 git github 详解
注册账户以及创建仓库要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。步骤如下: 打开https://github.com 直接在首页上注册点按钮注册成功之后,在页
2016-11-16 00:07:30
328
原创 Git常用指令
Git常用指令本地仓库管理创建版本库:git init添加文件到暂存: git add readme.txt将文件暂存中的文件提交到本地仓库:git commit -m “add 3 files” -m之后冒号中的是当前提交的描述,以备之后查看历史时,知道该次提交做了什么。查看仓库当前状态:git status查看修改的内容有什么区别:git diff readme.txt查看历史版本
2016-11-15 23:58:15
256
转载 git学习详解
本地库创建版本库$ mkdir learngit$ cd learngit$ pwd/Users/michael/learngit git init用命令git add告诉Git,把文件添加到仓库:$ git add readme.txt为什么Git添加文件需要add,commit一共两步呢?因为
2016-11-15 22:25:12
236
原创 关于android系统架构中的HAL层
HAL(hardware abstraction layer) 硬件抽象层HAL层主要是为规避GPL【开源协议】而设计的,它将将硬件驱动分成内核空间和用户空间两部分,其中用户空间两部分采用的是商业友好的Apache License。应用程序框架层主要包括系统服务,例如组件管理服务、应用程序安装服务、窗口管理服务、多媒体服务和电信服务等。应用程序框架进一步又分为C
2016-11-12 19:13:41
1041
转载 Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客)前言为了更好地阅读本文,你需要先阅读Android apk动态加载机制的研究这篇文章,在此文中,博主分析了Android中apk的动态加载机制,并在文章的最后指出需要解决的两个复杂问题:资源的访问
2016-11-12 19:10:05
338
转载 Android apk动态加载机制的研究
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/22597587 (来自singwhatiwanna的csdn博客)背景问题是这样的:我们知道,apk必须安装才能运行,如果不安装要是也能运行该多好啊,事实上,这不是完全不可能的,尽管它比较难实现。在理论层面上,我们可以通过一个宿主程序来运行一些未安装的apk,当然,
2016-11-12 19:08:01
333
转载 Android源码分析-资源加载机制
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客)前言我们知道,在activity内部访问资源(字符串,图片等)是很简单的,只要getResources然后就可以得到Resources对象,有了Resources对象就可以访问各种资源了,这很简单
2016-11-12 19:03:31
234
原创 深入理解Android消息处理系统——Looper、Handler、Thread
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:消息队列,用来存放Handle
2016-11-12 19:01:20
298
原创 源码解析--activity启动过程
Activity是Android中一个很重要的概念,堪称四大组件之首,关于Activity有很多内容,比如生命周期和启动Flags,这二者想要说清楚,恐怕又要写两篇长文,更何况分析它们的源码呢。不过本文的侧重点不是它们,我要介绍的是一个Activity典型的启动过程,本文会从源码的角度对其进行分析。我们知道,当startActivity被调用的时候,可以启动一个Activity,但是你知道这个Ac
2016-11-12 18:59:45
504
原创 android art和Dalvik的比较
Dalvik和art的比较 Art4.4才有,源于google收购的Flexycore公司。Dalvik模式像是一台折叠自行车,每次骑之前都要组装后才能上路。而ART模式就是一个已经装好的自行车,直接就能上车走人。所以ART模式在效率上肯定是要好于Dalvik。 通过以上这种表格,我们可以直白的看出,全新的ART模式具备用RAM内存小、流畅度更好以及更省电的特性。
2016-11-12 17:07:26
324
原创 GNU和apache协议的对比
android系统的用户空间使用apache协议,linux内核使用gpl协议。 GNU General Public Licence (GPL)GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:可自由复制你可以将软件复制到你的
2016-11-12 17:04:05
1587
转载 Android源码分析-全面理解Context
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/21829971 (来自singwhatiwanna的博客)前言Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像难以说清楚
2016-11-12 17:01:25
234
原创 binder学习
C++层我们开发时所见到的Binder是Android系统提供给我们的java接口,java层的Binder对象只是Android对底层Binder的一个封装,提供给上层开发人员使用,真正的Binder其实隐藏在系统底层,默默的替我们进行着跨进程通信。Java层的服务端Binder对象在C++层对应的对象为BBinder,而客户端拿到的BinderProxy对象对应的则为BpBinder,
2016-11-12 16:56:02
354
原创 Zygote和System进程的启动过程
init脚本的启动+------------+ +-------+ +-----------+|Linux Kernel+--> |init.rc+-> |app_process|+------------+ +-------+ +-----------+ create and public
2016-11-12 16:45:33
263
转载 service详解
1、Service的种类 按运行地点分类:类别区别 优点缺点 应用本地服务(Local)该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。 主进程被Kill后,服务便会终止。 非常常
2016-11-12 16:42:40
494
原创 activity的生命周期
1).按back退出activity此时会走onPause()->onStop()->onDestroy()方法:2).在一个Activity中启动另一个Activity从MainActivity中启动SecondActivity我们可以很清楚的看到MainActivity中的onPause方法执行完了以后然后新的SecondActivity的o
2016-11-12 16:40:27
253
原创 从源码角度解析android APP启动过程中各类及其方法的调用
上图就可以很好的说明App启动的过程ActivityManagerService组织回退栈时以ActivityRecord为基本单位,所有的ActivityRecord放在 同一个ArrayList里,可以将mHistory看作一个栈对象,索引0所指的对象位于栈底,索引mHistory.size()-1所指的对象位于 栈顶Zygote进程孵化出新的应用进程后,会执行ActivityThread类的
2016-11-12 16:34:32
377
原创 mvvm模式详解
mvvm是在mvp之上改进的,并且是因为wpf的出现。wpf的数据绑定功能这种模式跟经典的MVP(Model-View-Presenter)模式很相似,除了你需要一个为View量身定制的model,这个model就是ViewModel。ViewModel包含所有由UI特定的接口和属性,并由一个 ViewModel 的视图的绑定属性,并可获得二者之间的松散耦合,所以需要在
2016-11-12 16:29:28
2922
转载 mvc mvp mvvm详解
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框 架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写 着就变成了MVC,久而久之就对它们三个的选择产生了恐惧感,如果你也是这样的人群,那么这篇文章可能会对你有很大的帮助,希望大家看完都会有收获吧!文章重点:
2016-11-12 16:26:26
689
2
原创 3次握手,4次放手
注释:ACK = 1是确认标示 ack = x 是希望的到的seq最后一次握手: (防止已失效连接请求报文传到sever,这样就不会出现sever连接等待现象)最后一次放手的等待时间(time-wait)=2msl,是因为若ACK返回丢失了,sever重传。保证client能接收。4次握手是因为sever收FIN后并不能立即关闭socket,需将所有报文传输完毕后才可
2016-11-11 19:21:25
266
转载 http状态码
200-299 是ok300-399 关于服务器资源的定位或修改400-499 用户权限或语法错误500-599 服务器问题100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议
2016-11-11 19:19:59
369
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人