自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (6)

原创 Android studio 生成带Kotlin文档简易教程

首先才项目的build.gradle 加入classpath ‘org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.16’ (0.9.16是当前版本) dependencies { classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.15' ...

2018-03-05 14:04:23 2430

原创 Android 中的 IPC方式

1.Android中的多进程模式:在android中最有特色的进程通讯方式就是Binder了,通过Binder可以轻松的实现进程间通讯,除了Binder,还有Socket,通过Socket也可以实现任意两个进程之间的通讯,当然同一个设备的两个进程通过Socket也是可以通讯的。通过四大组件的addroid:process属性,就可以开启多线程模式,但是却会有很多其他问题,下面会说到。1.1开启多线程

2017-11-07 00:11:01 1141

原创 自定义view__封装Dialog-分享功能UI的实现

直接上图看效果 GitHub下载 实现的思路recyclerView–可以方便的添加多个分享,方便增加修改svg–svg可减少使得绘制更快,更流畅materialDialog–简洁大方因为分享功能可能需要增加或修改,所以使用recyclerView来显示看源码 item_share.xml<?xml version="1.0" encoding="utf-8"?><android.s

2017-06-10 20:35:51 2515

原创 Android 开发必看Gson解析json案例

如果你需要下载Gson(在Android studio中不需要下载加载添加即可)请到 http://download.csdn.net/detail/qq_30034925/9813069中下载,或者在本文末端连接的源码中有。 Gson作为谷歌的亲儿子使用的还是比较广泛,下面将会完成一个利用Gson解析json的案例,因为做为测试用的,所以不做Android studio例子,而是在Ecli

2017-04-13 21:53:18 2174

原创 Android 开发必备之json解析Gson篇

概述在了解gson前,你需要了解json。 什么是 JSON ?JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式JSON 独立于语言 *JSON 具有自我描述性,更易理解JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON库

2017-04-13 21:29:50 1595

原创 Android开发必备之运行时动态请求权限

从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的访问权限。用户可以随时进入应用的“Settings”界面调用权限。 如果设备运行的是 Android 5.1(AP

2017-04-12 13:16:50 2829

原创 Android开发必备之Picasso加载图片

Picasso ,Android 开发必备加载图片

2017-04-11 10:30:49 2476 1

原创 Andorid 开发必备之轻松制作发布自己的依赖库。

一直以来我们都是使用别人的开源代码,但是真正的程序员应该把自己的优秀代码共享出来,我们封装的代码,封装的功能,自定义的View等等,制作成Library往往可以使得我们开发更加方便。这里以自定义的View作为例子第一步新建一个Andorid工程。然后新建一个model然后完成自定义View的编码(在本人github中有代码) 这里实现的是一个自定义的CheckBox,用作选择框的 第二步打开An

2017-04-11 00:52:39 1615

原创 自定义View 实现圆形seekbar (音量旋钮)

自定义圆形seekbar在做一个音频的项目,想在网上找一个圆形aseekbar,但是一直没找到合适的,只好自己动手写了,上网找了一个demo进行了大修改效果如下效果图废话不多说,直接上源码,不懂的可以留言attrs.xml<resources> <declare-styleable name="DutyView"> <attr name="viewType"> <enum nam

2017-03-30 09:26:04 3628 7

原创 最详细GreenDao3.2的基本使用

GreenDao官网说它是最好的数据库框架,我们也当真吧,反真它的更新进度给力,最近都有在更新。也使得我们android程序员使用起来越来越方便。至于为什么使用它这里不做多解析。进入正题。首先我们需要在项目build.gradle中导入包` dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:

2017-01-25 14:58:50 3798 11

原创 生成括号

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "()(())", "(

2017-12-26 16:00:52 158

原创 Valid Parentheses

Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.The brackets must close in the correct order, "()" and "()[]{}" are all valid but

2017-12-26 11:18:53 153

原创 Letter Combinations of a Phone Number

Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below.Input:Digit string "23"

2017-12-26 11:17:36 126

原创 Letter Combinations of a Phone Number

Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below.Input:Digit string “23”

2017-12-26 00:24:33 158

原创 经典算法找最长回文

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: “babad”Output: “bab”这里写代码片Note: “aba” is also a valid answer. Example:

2017-12-25 20:00:29 142

原创 Given a string, find the length of the longest substring without repeating characters

Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the length is 3.Given “bbbbb”, the answer is “b”, with the le

2017-12-25 17:20:09 747

原创 HTTP协议面试

http1.0所做的优化带宽:现阶段已经解决延迟:1.浏览器阻塞:浏览器对同一个域名,同时只能有4个连接、延迟:2.DNS查询:浏览器需要知道目标服务器的 IP才能建立连接延迟:建立链接:三次握手http1.0/http1.1的区别1缓存处理不同。 1.0只是用一个头文件的缓存策略,1.1引入了更多 2带宽优化及网络连接的使用(1.0存在浪费带宽,不支持断点续传功能。1.1允许只请求资源

2017-11-30 08:27:39 3768

原创 Android 面试基础

1.Service1.1Service和Thread的区别A.定义Service运行在主线程,不能做耗时操作。可以独立运行在后台中。如果需要在Service做耗时操作一定要独立开启个线程来执行Thread作为子线程,activity finish掉的时候其就不存在了。B.实际开发线程一般指定是功能线程,而主线程是ui线程,不能做耗时操作,service运行在ui线程中,无法做耗时操作ser

2017-11-26 13:31:25 195

原创 java多线程之-----Lock的使用

写这个主要是在魅族面试的时候被问到多线程同步的问题,我打可以使用Lock,但是那个面试官却说java中没有Lock这个东西。我一开始坚定有,后来只好说没有了。主要是自己只是看过,了解。不过这个面试也让自己知道了很多的不足吧。结果还没出,应该是挂了。正题,在java多线程中,可以利用synchronized关键字来实现线程之间同步互斥,但在java1.5后,新增加了ReentranLock类也能达到同

2017-10-30 08:35:42 1132

原创 java多线程之-----volatile关键字

1关键字与死循环创建测试项目,创建PrintString.java类public class PrintString { private boolean isContinuePrint=true; public boolean isContinuePrint(){ return isContinuePrint; } public void setCont

2017-10-29 22:07:46 234

原创 java多线程之-----静态同步synchronized方法与synchronized(class) 代码块

这个也是我在面试中被问到的一个题目,这个没答出来 关键字synchronized还可以应用在static静态方法上,如果这样写,那是对当前的*.java文件对应的Class类进行持锁,测试项目:类文件Service.java代码如下:public class Service { synchronized public static void PrintA(){ tr

2017-10-29 15:10:04 545

原创 java多线程之-----对象及变量的并发访问1(synchronized同步方法)

方法内部的变量为线程安全的“非线程安全”问题存在于“实例变量中”如果是方法内部的私有变量,则不存在“非线程安全”的问题,所得的结果也就是“线程安全”的了实例变量非线程安全如果多个线程共同访问一个对象中的实例变量,则有可能出现“非线程安全”的问题。用线程访问的对象中如果有多个实例变量,则运行的结果可能有可能出现交叉的情况。如果只有一个实例变量则有可能出现覆盖的情况,看下面的测试:创建新的项目,

2017-10-29 14:06:07 490

原创 java多线程之-----停止线程

在java中有以下三种方式可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。使用stop方法强行终止线程,但是不推荐这个方法,因为stop和suspend以及resume一样,都是过期的方法,使用他么可能会产生不可预料的结果。使用interrrut方法中断线程。停止线程—异常法新建Mythread类继承Threadpublic class MyThread

2017-10-28 16:39:44 1138

原创 堆的插入删除实现和优化

堆的插入的时候实在树的最下面插入。例如 97 / \ 95 69 / \ / \ 65 67 26 26 / \ / \ / \ / \ 10 65 67 在该树中,插入一个新的数据的

2017-10-12 08:17:17 269

原创 快速排序实现以及优化

SortTestHelper为辅助类,在我插入排序那篇文章有 SOrtTestHelPer快速排序原理:假设我们现在对“6 1 2 7 9 3 4 5 10 8”这 10 个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,这就是一个用来参照的数,待会儿你就知道它用来做啥了)。为了方便,就让第一个数 6 作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在 6

2017-10-11 14:08:48 335

原创 归并排序

public class MergeSort{ // 我们的算法类不允许产生任何实例 private MergeSort(){} // 将arr[l...mid]和arr[mid+1...r]两部分进行归并 private static void merge(Comparable[] arr, int l, int mid, int r) { Compara

2017-10-10 22:50:36 118

原创 插入排序与优化笔记

下面的方法中是属于插入排序,但是因为其调用的是交换函数,每次都进行交换就会耗费更高的资源 public static void sort(Comparable[] arr){ int n = arr.length; for (int i = 0; i < n; i++) { // 寻找元素arr[i]合适的插入位置 // 写法

2017-10-10 08:05:30 151

原创 Comparable使用在选择排序

ComparatorComparator可以认为是是一个外比较器,个人认为有两种情况可以使用实现Comparator接口的方式:1、一个对象不支持自己和自己比较(没有实现Comparable接口),但是又想对两个对象进行比较2、一个对象实现了Comparable接口,但是开发者认为compareTo方法中的比较方式并不是自己想要的那种比较方式Comparator接口里面有一个compare方法,方法

2017-10-09 23:11:33 228

原创 django将所有app放到一个apps文件夹中

第一步 新建一个文件夹 apps 第二步将所有的app拖到apps中,会提示勾选Search for references ,把这个勾去掉第三步选中apps文件夹,右键Make Directory As -> Resoure Root第四步 在setting.py 中添加 sys.path.insert(0,os.path.join(BASE_DIR,”apps”)) 这样的话就把apps添加进

2017-09-29 23:30:21 5947 2

原创 scrapy用item_loader加载item并处理

from AticleSpider.items import JobBoleAricleItem, ArticleItemLoader如果不使用item_loader则需要 def parse_detail(self, response): article_item = items.JobBoleAricleItem() re_select = response.xp

2017-09-25 23:03:05 1511

原创 Scrapy图片自动下载配置

在setting.py中配置基本信息IMAGES_URLS_FIELD = "front_image_url"# 获取当前文件路径project_dir = os.path.abspath(os.path.dirname(__file__))# 设置图片保存路径IMAGES_STORE = os.path.join(project_dir, 'images')同时打开ITEM_PIPELIN

2017-09-25 23:02:08 1496

原创 Scrapy用Twisted异步操作Mysql

1首先在setting中配置好数据库的信息,便于修改管理MYSQL_HOST='192.168.0.2'#主机MYSQL_DBNAME='dbname'#数据库名称MYSQL_USER='root'#用户名MYSQL_PASSWORD='jian'#密码在pipelines.py中# Twisted只是提供一个异步容器,本身没提供数据库链接class MysqlTwistedPipeline

2017-09-25 16:14:14 3623 1

原创 python 列表生成式

生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]但如果要生成[1x1, 2x2, 3x3, …, 10x10]怎么做?方法一是循环:>>> L = []>>> for x in range(1, 11):... L.ap

2017-09-14 14:33:17 285

原创 python 迭代

什么是迭代在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration)。在Python中,迭代是通过 for … in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:for (i=0; i<list.length; i++) { n = list[i];}可以看

2017-09-14 14:32:35 230

原创 Python 之dict和set

Python之访问dict我们已经能创建一个dict,用于表示名字和成绩的对应关系:d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59}那么,如何根据名字来查找对应的成绩呢? 可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:>>> pr

2017-09-14 14:31:51 231

原创 python 函数式编程

python把函数作为参数在2.1小节中,我们讲了高阶函数的概念,并编写了一个简单的高阶函数:def add(x, y, f): return f(x) + f(y)如果传入abs作为参数f的值:add(-5, 9, abs)根据函数的定义,函数执行的代码实际上是:abs(-5) + abs(9)由于参数 x, y 和 f 都可以任意传入,如果 f 传入其他函数,就可以得到不同的返回值。\p

2017-09-14 14:30:14 146

原创 自定义View之粘性下拉刷新效果

PullView.java/** * Created by jian on 17-8-16. */public class PullView extends View { //圆的画笔 private Paint mCirClePaint; //圆的半径 private float MCirCleRadius = 50; //可拖动的高度 priva

2017-08-17 23:16:56 559

原创 JAVA注解应用之合成数据库查询语句

自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。 在使用注解之前,程序源数据只是通过java注释和javadoc,但是注解提供的功能要远远超过这些。注解不仅包含了元数据,它还可以作用于程序运行过程中、注解解释器可以通过注解决定程序的执行顺序使用注解来以及反射来实现的数据库查

2017-07-24 14:33:45 408

原创 JAVA反射

Class反射机制指的是可以于运行时加载,探知和使用编译期间完全未知的类. 程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能调用他的任意一个方法和属性; 加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,而且这个Class对象就像一面

2017-07-24 14:01:08 129

原创 Android捕捉未捕捉的异常

个人笔记/** * Created by jian on 2017/7/11. */public class CrashHandler implements Thread.UncaughtExceptionHandler { private static CrashHandler instance = null; private Thread.UncaughtExceptionH

2017-07-11 23:40:01 234

SetupRegexBuddy4.2.1破解版

SetupRegexBuddy4.2.1破解版 ,可用

2017-04-16

Gson解析json的快递查询源码

Gson解析json的快递查询源码

2017-04-13

gson2.8.jar

gson2.8.jar

2017-04-13

Volley。fastJson解析网络Json ,多线程显示图片,简单缓存图片,万能适配器,完美解决图片排序混乱问题,完美解决图片多次加载问题

Volley。fastJson解析网络Json ,多线程显示图片,简单缓存图片,万能适配器,完美解决图片排序混乱问题,完美解决图片多次加载问题

2015-08-16

Gson解析网络数据显示到listview上,加入万能适配器,适配器就10行,大家可以复制包用

Gson解析网络数据显示到listview上,加入万能适配器,适配器就10行,大家可以复制包用,在log日记查看完整的Json数据,listview上我显示了title给大家看效果,适配器只要10行左右,简单易懂。

2015-08-05

JazzyViewPager修改过,用Fragment实现3D切换,自定义Xml文件

JazzyViewPager修改过,用Fragment实现3D切换,自定义Xml文件,我下载了源码,但是源码没有使用价值,我修改后可以用Fragment实现,PagerAdapter改成了FragmentPagerAdapter,很有使用价值,只要自己添加你的fragment就可以使用。搞了好久才懂的.没什么分,就收两分。

2015-08-04

空空如也

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