- 博客(33)
- 资源 (2)
- 收藏
- 关注
转载 Android Volley完全解析,带你从源码的角度理解Volley
经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这也是Volley系列的最后一篇文章了。其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示。 多数朋友突然看到一张这样的图,应该会和我一样,
2017-01-19 15:48:41 460
原创 Volley框架的使用总结
在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。Volley主页 https://android.goog
2017-01-19 15:46:10 309
原创 二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以
2016-10-30 16:06:52 265
原创 归并排序
private int[] merge(int[] lres, int[] rres) { int[] res = new int[lres.length + rres.length]; int l = 0; int r = 0; int c = 0; while(l < lres.length && r < rre
2016-10-30 16:03:41 271
转载 图片的缓存
本博文为子墨原创,转载请注明出处!http://blog.csdn.net/zimo2013/article/details/15108267/** * * @author zimo2013 * @see http://blog.csdn.net/zimo2013 * */public interface ICacheManager { public boolean a
2016-10-30 12:49:27 366
转载 KMP
KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,主要原因是KMP算法在构造跳转表next过程中进行了多个层面的优化和抽象,使得KMP算法进行模式匹配的原理显得不那么直白。本文希望能够
2016-10-26 09:23:28 227
翻译 快速排序
快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序是一种不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种
2016-10-26 09:20:09 248
转载 adb 常用命令
基本用法命令语法adb 命令的基本语法如下:adb [-d|-e|-s ] 如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb 。为命令指定目标设备如果有多个设备/模拟器连接,则需要为命令指定目标设备。参数含义-d指定当前唯一通过 USB 连接的 Android 设备为命令目标
2016-10-19 18:27:28 1528
原创 常用的几何公式
三角形:1. 半周长 P=(a+b+c)/22. 面积 S=aHa/2=absin(C)/2=sqrt(P(P-a)(P-b)(P-c))3. 中线 Ma=sqrt(2(b^2+c^2)-a^2)/2=sqrt(b^2+c^2+2bccos(A))/24. 角平分线 Ta=sqrt(bc((b+c)^2-a^2))/(b+c)=2bccos(A/2)/(b+c)5. 高线 Ha
2016-10-19 17:31:37 2484
原创 算法之网格。。
#define abs(x) ((x)>0?(x):-(x))struct point{int x,y;};int gcd(int a,int b){ return b?gcd(b,a%b):a;}//多边形上的网格点个数int grid_onedge(int n,point* p){ int i,ret=0; for (i=0;i ret+=gcd(abs(
2016-10-19 17:20:46 535
原创 算法之整数几何函数库
//整数几何函数库//注意某些情况下整数运算会出界!#define sign(a) ((a)>0?1:(((a)struct point{int x,y;};struct line{point a,b;};//计算cross product (P1-P0)x(P2-P0)int xmult(point p1,point p2,point p0){ return (p1.
2016-10-19 17:19:20 374
原创 常用算法整理之圆
#include #define eps 1e-8struct point{double x,y;};double xmult(point p1,point p2,point p0){ return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}double distance(point p1,point p2){ r
2016-10-19 17:17:29 339
原创 算法之素数的快速筛选两种方式
素数打表法12345678910111213141516memset(f, 0,sizeof(f)); f[1]=1 ;i=2;while(i{ for(j=i*2; j { f[j]=1; } i++;
2016-10-19 17:11:09 805
转载 计算一个大数n的阶乘的位数宽度(十进制)(log i累加法 )
计算一个大数n的阶乘的位数宽度(十进制)(log i累加法 )转载 输入: 每行输入1个正整数n, (0输出: 对于每个n,输出n!的(十进制)位数。 分析: 这道题采用蛮力法。根据定义,直接求解! 所谓n!的十进制位数,就是 log(n)+1, 根据数学公式有:n!=1*2*3*.....*n;
2016-10-19 17:09:44 580
原创 趣味算法之求余 a^b%m;
123456789a%k 当p=1a^p%k=(a*a^(p-1)%k)%k; p是奇数。((a*a)%k)^p/2 p是偶数。long long mod(longlong a,longlong p){ if(p==1) returna%m; if(p%2) re
2016-10-19 17:08:36 502
原创 算法之错排公式 错排(加组合)
递推的方法推导错排公式 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推. 第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法; 第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,对于剩下的n-2个元素,就有M(n-2)种方法;
2016-10-19 17:05:43 462
原创 四叉树的构建-范围模拟分裂
四叉树的构建-简单的范围模拟分裂#include#include#includeusing namespace std;struct node{double dian[4];//用来保存x,y的最大值和最小值int gs;//限定一个节点中所能存放最大点数bool j;//用来标记是否进行了分裂node *f[4];//四叉树的四个节点void csh(
2016-10-19 17:04:32 789
翻译 算法之红黑树简单理解和定义
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。红黑树和AVL树类似,都是在
2016-10-19 15:51:41 2630
转载 一篇关于Android Root不错的文章
Android的内核就是Linux,所以Android获取root其实和Linux获取root权限是一回事儿。你想在Linux下获取root权限的时候就是执行sudo或者su,接下来系统会提示你输入root用户的密码,密码正确就获得root权限了。Android本身就不想让你获得Root权限,大部分手机出厂的时候根本就没有su这个程序。所以你想获得Android的root权限,第一步就是要把编
2016-10-19 11:18:14 465
转载 Android 6.0 以上权限大坑和权限检查基类封装
简单介绍关于运行时权限的说法,早在Google发布android 6.0的时候,大家也听得蛮多的。从用户的角度来讲,用户是受益方,更好的保护用户的意思,而对于开发者来说,无疑增加了工作量。对于6.0以下的权限在安装时,会根据权限声明产生一个权限列表,用户只有同意才能完成app的安装。而在6.0以后,不需要先对权限授权就可以安装app,对于权限的授权我们可以选择禁止。在新的权限机制中,G
2016-10-19 11:13:13 1350
转载 Android-Tips
Android-Tips 学习 Android 至今,大大小小的坑没少踩,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,我遇到的坑都顺利地被填平了。 为了便于日后遇到同样的问题时,能免于再次搜索带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。 如果你是个 Android 新人,那么我希望这份列表,可以成为你踩到坑时的不完全手册。
2016-10-19 11:01:25 438
转载 Android 与 HTML + Js的交互
在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地Java代码与HTML中的javascript进行交互,Android也对交互做了很好的封装,所以很容易实现例如:点击网页中的按钮Android调用原生对话框,点击网页中的电话号码调用Android拨号APP。这篇给大家介绍下如何实现An
2016-10-19 10:44:20 303
转载 Android源码下载总结
这几天下载编译了android源码,下面是一些笔记。准备工作1.安装JDK和Xcode, 一般android开发人员的mac电脑上这两样应该是必备的吧。我的JDK是1.7版本,没试过1.8是否可行。 安装Xcode是因为需要里面Command Line Tools的。从Yosemite开始,Command Line Tools可以单独安装,无需像之前一样 必须先安装Xcode才能安装Com
2016-10-19 10:39:58 514
转载 android:process 的坑,你懂吗?
许多知识知其然而不知其所以然,这也许就是大神与菜鸟的区别吧。最近排查问题时发现一个问题: 一个在 Application 中启动的定时任务在运行时会被调用多次,诡异的很,最后发现是一个前人留下的坑,原因就是对 android:process 不知其所以然造成的。android:process 属性关于 android:process 属性,相信大家都不陌生,android 官网是这样说
2016-10-19 10:34:42 1717
原创 Android6.0中有关权限的那些坑资料的整理
Runtime Permissions 在Android 6.0中谷歌摒弃了之前的install time permissions model取而代之的是runtime permissions model。先来说说install time permissions model,这个大家不陌生,就是当Android App安装的时候会向用户展示一坨权限,如果此时用户选择安装,则
2016-10-19 09:51:46 2270
原创 android文件管理器开发中遇到的一些问题
1.难点主要有如何获取外挂设备的信息以及路径无论是U盘还是TF卡等等获取方式在其他博客中请自己查看。2.在Android6.0中想要对外部设备进行的文件的操作是比较难的因为6.0中Android系统对外部存储器操作的权限进行了修改,所以只能进行读操作,无法进行对外部设备的写操作,在翻看了大量的知识博客中,找的了相关的解决方法Android 外部存储权限分析 不知道你有么
2016-10-19 09:30:21 1102
原创 Android文件管理器开发中对文件的复制,移动,删除,新建文件夹等的操作
//新建文件 public boolean newFile(File file) { boolean result = false; if (file != null) { try { result = file.createNewFile(); } catch (Exception e) { e.printStackTrace(); result = false; } } return resu
2016-10-19 09:27:01 2609
原创 Android中有关于获取外挂设备的路径以及基本信息
/** * 获取所有存储卡挂载路径 * @return */ /* public static List getMountPathList() { List pathList = new ArrayList(); final String cmd = "cat /proc/mounts"; Runtime run = Runtime.getRuntime();//取得当前JVM的运行时环境 try
2016-10-19 09:24:26 776
转载 CountDownLatch的介绍和使用
CountDownLatch的介绍和使用http://www.itzhai.com/the-introduction-and-use-of-a-countdownlatch.html1、类介绍java.util.concurrent 类 CountDownLatchjava.lang.Objectjava.util.concurrent.CountDownLatch
2016-10-18 18:29:00 260
转载 Android中各类.mk文件的编写
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_STATIC_JAVA_LIBRARIES := xsocket jackson-mapper logging jackson-core javatar log4jLOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES
2016-10-18 18:26:55 9291
原创 android中对u盘以及tf卡插入的广播监听
public class UsbStateReceiver extends BroadcastReceiver { //BroadcastReceiver private String TAG = "UsbStateReceiver"; public static final int USB_STATE_ON = 0x00021; public static final
2016-10-18 18:21:48 5093
原创 Android文件管理器开发对各类文件的打开以及处理
针对Android6.0开发的对读写权限的处理public class AppUtil { // Storage Permissions private static final int REQUEST_EXTERNAL_STORAGE = 1; private static String[] PERMISSIONS_STORAGE = {
2016-10-18 18:14:28 5270
原创 Android文件管理器开发之对隐藏的文件进行过滤
1.Android为linux系统。隐藏文件的操作通常是在文件名前面加一个.2.Windows系统下,隐藏文件的方式与之很大不同。3.两者不能相互隐藏。Windows下隐藏文件在linux下是可以被看到的。过滤隐藏文件需要实现FileFilter接口package com.memo.filemanager;import java.io.File;import java.
2016-10-18 18:11:03 2513
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人