- 博客(301)
- 资源 (3)
- 收藏
- 关注
转载 Activitys, Threads和 内存泄露
【转自:http://www.cnblogs.com/kissazi2/p/4125356.html】Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露。思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务。 1 /** 2 * 一个展示线程如何在配置变化中存活下来的例
2016-05-19 16:15:37 441
转载 解决在onCreate()过程中获取View的width和Height为0的4种方法
【转自: http://www.cnblogs.com/kissazi2/p/4133927.html】很经常当我们动态创建某些View时,需要通过获取他们的width和height来确定别的view的布局,但是在onCreate()获取view的width和height会得到0.view.getWidth()和view.getHeight()为0的根本原因是控件还没有完成绘制,你必须等待
2016-05-19 15:58:13 403
转载 给 Android 开发者的 RxJava 详解
原文出处:http://gank.io/post/560e15be2dca930e00da1083 前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是
2016-05-16 21:30:17 835
转载 ButterKnife源码分析
[转自:http://www.jianshu.com/p/0f3f4f7ca505#]ButterKnife源码分析前言在N久之前,自从实验室里面的学长推荐我用butterknife后, 从此的项目再也离不开butterknife了,然而自以为对它很熟时,前不久今日头条实习生招聘二面却被面试官洗刷了一顿。然后整个二面完全是被虐的感觉,估计最后会挂,哎!当时被问到bu
2016-05-16 21:16:26 432
转载 Retrofit分析-漂亮的解耦套路
Retrofit分析-漂亮的解耦套路字数1993 阅读14870 评论39 喜欢175没耐心自己分析源码的同学,还可以参考Stay录制的视频版Retrofit分析-漂亮的解耦套路(视频版)万万没想到Retrofit会这么火,在没看源码之前,我简单的认为是因为它跟OkHttp同出一源(Square),所以才会炒的那么热。又或者是因为它能支持RxJava,所以火
2016-05-16 20:25:56 730
转载 15 个 Android 通用流行框架大全
[转自: https://segmentfault.com/a/1190000005073746]1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Lo
2016-05-14 17:19:42 741
翻译 Android开发最佳实践---Futurice之见
使用Gradle和推荐的工程结构把密码和敏感数据存放在gradle.properties文件中使用Jackson或者Gson库来解析JSON数据不要自己实现HTTP客户端,要使用Volley或者OkHttp库避免使用Guava, 使用少量的函数库从而避免超出65k方法数限制.使用Fragments来表示UI界面Activities只用来管理Fragments布局XML文件是代码,要组织好它们
2016-05-14 16:46:21 7009 1
转载 Linux堆内存管理深入分析
Linux堆内存管理深入分析(上半部)作者:走位@阿里聚安全0 前言近年来,漏洞挖掘越来越火,各种漏洞挖掘、利用的分析文章层出不穷。从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏洞利用两种。国内关于栈溢出的资料相对较多,这里就不累述了,但是关于堆溢出的漏洞利用资料就很少了。鄙人以为主要是堆溢出漏洞的门槛较高,需要先吃透相应操作系
2016-05-13 20:14:20 1122
转载 JAVA程序员一定知道的优秀第三方库(2016版)
JAVA程序员一定知道的优秀第三方库(2016版)几乎每个程序员都知道要“避免重复发明轮子”的道理——尽可能使用那些优秀的第三方框架或库,但当真正进入开发时,我却经常发现他们有时并不知道那些轮子在哪里。最近,我在业余时间带几个年轻的程序员一起做了一个很小的商业项目,而在一起开发的过程中,我几乎在所有需要判断字符串是否为空的地方,看到了下面的代码:if(inputString ==
2016-05-13 19:23:33 1016
原创 互联网后台的奥秘 - 腾讯一大牛的分享
这是前两天腾讯一技术总监来华科做的一个演讲, 今天才整理出来. 因为里面有些内容好逗, 为了免除给大牛带来烦恼, 就不署名了. 都是纯纯的干货, 都是亲身经历获得的经验, 十分感谢这位大牛. 为了穿插成文, 里面有些我自己的想法, 如有错误, 谢谢指出, 和大牛无关.大纲提升系统性能主要从提高CPU利用率, 和减小IO入手. 提高CPU利用率 减小IO 异步/协程 机械硬盘顺序写
2016-05-13 15:50:21 2702
转载 通俗易懂之epoll--转自”知乎“
作者:蓝形参链接:http://www.zhihu.com/question/20122137/answer/14049112来源:知乎首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write
2016-05-13 14:41:32 763
原创 JSP的9大内置对象和4大域对象
什么是内置对象?在JSP开发中,会频繁使用到一些对象。例如HttpSession, ServletContext, ServletContext, HttpServletRequet。如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计JSP时,在JSP页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可,这些创建好的对象就叫内置对象!
2016-05-13 12:09:56 967
原创 图解JSP运行原理和过程
JSP运行过程WEB容器JSP页面的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。每个JSP页面在第一次被访问时,JSP引擎先将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器像调用普通Servlet程序一样的方式来装载和解释执行这个由
2016-05-13 10:36:05 16714 2
原创 转发和重定向的区别
转发a)地址栏不会改变b)转发只能转发到当前web应用内的资源c)可以在转发过程中,可以把数据保存到request域对象中重定向a)地址栏会改变,变成重定向到地址。b)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。c)不能再重定向的过程,把数据保存到request中。注意: 如果要使用request域对象进行数据共享,只能用转发技术!!!转发实例@WebServl
2016-05-12 15:33:13 884
原创 Sevlet的生命周期
引入Servlet的生命周期是指: servlet类对象什么时候创建,什么时候调用什么方法,什么时候销毁。这里要注意Servlet程序的生命周期由tomcat服务器控制的, 它的创建, 调用和销毁由tomcat服务器控制!!!!Servlet重要的四个生命周期方法构造方法创建servlet对象的时候调用。默认情况下,第一次访问servlet的时候创建servlet对象
2016-05-12 15:10:22 440
转载 servlet缺省路径
servlet的缺省路径<url-pattern>/</url-pattern>是在tomcat服务器内置的一个路径。该路径对应的是一个DefaultServlet(缺省Servlet)。这个缺省的Servlet的作用是用于解析web应用的静态资源文件。问题: URL输入http://localhost:8080/thirdSample/index.html 如何读取文件???? 1)到当
2016-05-12 14:58:34 861
转载 Tomcat 容器与servlet的交互原理
Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品.下面我们描述一下Tomcat与
2016-05-12 14:55:21 1615
原创 Http响应和HttpServletResponse对应设置方法
以一个http响应为例:HTTP/1.1 404 OK 响应行Server: Apache-Coyote/1.1 响应头Content-Length: 0Date: Thu, 12 May 2016 06:20:53 GMTthis is servlet 实体内容响应行HTTP/1.1 404 OK http协议版本 状态码 状态描述其中状态码格外重要, 表
2016-05-12 14:39:12 9755
原创 HttpServlet中的service和doGet的区别
我们首先看下service的代码, 注释直接和代码写在一块, 方便理解.protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); //判断用户的提交方式
2016-05-12 14:03:14 1861
原创 Http请求和HttpServletRequest中获得对应参数的方法
当用户访问网页, 会使用http发送请求, 在服务端需要解析用户的请求. 那么http请求和HttpServletRequest的方法是如何对应的呢?
2016-05-12 13:55:22 47728 3
转载 图解Tomcat类加载机制
最近看了Tomcat后, 对Tomcat类加载还不是很清楚, 在网上找了这篇文章, 很赞. 原文排版更精美, 推荐阅读原文.前言 说到本篇的tomcat类加载机制,不得不说翻译学习tomcat的初衷。 之前实习的时候学习javaMelody的源码,但是它是一个Maven的项目,与我们自己的web项目整合后无法直接断点调试。后来同事指导,说是直接把java类复制到src下就可以
2016-05-12 13:29:53 593
原创 Java Web之Tomcat目录结构和Web应用
Tomcat目录结构解析|-bin: 存放tomcat的命令, 如启动停止脚本等。 catalina.bat 命令:startup.bat -> catalina.bat start shutdown.bat - > catalina.bat stop|- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。|-lib:支持to
2016-05-12 12:28:42 808
转载 一致性哈希算法
一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。 因此,引入了一致性哈希算法:
2016-05-11 19:16:23 372
原创 Permission Denial: not allowed to send broadcast in android
因为最近项目里Intent用到了广播”android.intent.action.MEDIA_MOUNTED”, 结果被提示权限不足, 查了下原因, 是因为从4.4开始, 官方开始限制这个广播的使用, 加上了 protected权限, 只能系统内部使用. 如下: <protected-broadcast android:name="android.intent.action.MEDIA_MOUN
2016-05-10 11:48:54 9652 1
原创 如何防止表单重复提交
问题在看Java Web 深入分析时, 看到表单重复提交问题一节, 如下描述如何解决问题: 要防止表单重复提交, 就要标识用户的每一次访问请求, 使得每一次访问对服务端来说都是唯一的. 为了标识用户的每次访问请求, 可以在用户请求一个表单域时,增加一个隐藏的表单项, 这个表单项的值每一次都是唯一的token. 如: <form id = "form" method="post"> <
2016-05-09 10:56:31 1896
转载 Gradle依赖的统一管理
我想大部分人应该都在使用Gradle来依赖管理,还没有使用的去面壁思过,Gradle使用起来简直太好用了,举个例子,我们想依赖个support-v4包,直接一句话: compile ‘com.android.support:support-v4:23.1.1’不要太方便好么?但是不知道你们发现一些问题没有?比如以后v4版本号如果升级了怎么办?你可能会说直接手动改下版本号就好了,又不费多少精力。
2016-05-08 13:18:44 617
转载 如何正确的使用开源项目?
前天发了一篇文章「如何选择开源项目?」广受大家喜爱,其实我们在使用开源项目的过程中有不少注意的事项,今天就来给大家补充下「如何正确的使用开源项目?」如果你是个人练手项目,那随你心情,想怎么用怎么用,没啥需要强调的注意事项,本篇文章仅是以在商业项目采用开源库做介绍。1. 使用成熟稳定的开源项目现在技术日新月异,可能隔几天就会出来一个新的开源框架,但是公司的商业项目永远以稳为主,也许你迫不及待的想尝鲜体
2016-05-08 12:44:23 642
转载 如何选择开源项目?
现在我接触到了开源社区,发现不少开源项目,但是却不知道如何选择应用到自己的项目上?这个问题比较好,相信不少人都有这样的疑问,且听我细细给大家说来。
2016-05-08 12:18:24 602
原创 因为Android M权限问题导致的"Permission Denial: reading com.android.providers.media.MediaProvider"解决办法
在API级别>=23时, 权限访问被分为三个级别, 分别为"PROTECTION_NORMAL, PROTECTION_DANGEROUS, 和PROTECTION_SIGNATURE(还有两个标志可以和SIGNATURE联合使用才有意义)". PROTECTION_NORMAL是普通权限, 通过manifest文件在安装时被授予. PROTECTION_SIGNATURE是签名权限, 通过"检查manifest和a
2016-05-08 11:30:26 30210 2
转载 常用android权限收录
1.android.permission.WRITE_USER_DICTIONARY 允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SYNC_SETTINGS 写入Google在线同步设置 3.android.permission.WRITE_SOCIAL_STREAM 读取用户的社交信息流 4.android.permission.WRITE_
2016-05-06 14:23:08 430
转载 Android AdapterView View的复用机制分析
对于ListView、GridView相信大家都不陌生,重写个BaseView,实现对于的几个方法,然后就完成了我们的界面展示,并且在大部分情况下,我们加载特别多的Item也不会发生OOM,大家也都明白内部有缓存机制,都遇到过ItemView复用带来的一些问题,比如异步加载图片,最终造成界面显示的混乱,我们一般会使用setTag,然后回调显示时,避免造成混乱。
2016-05-06 13:12:06 477
转载 MediaStore与Media.EXTERNAL_CONTENT_URI
MediaStore这个类是Android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提取。这个MediaStore包括了多媒体数据库的所有信息,包括音频,视频和图像。android把所有的多媒体数据库接口进行了封装,所有的数据库不用自己进行创建,直接利用ContentResolver去调用那些封装好的接口就可以进行数据库的操作了。
2016-05-04 21:53:03 16852
原创 xargs的使用
前段时间查自己的代码行数时, 用了”find . -name “*.cs” | xargs wc -l“, 但是对xargs在这里的作用有点不了解, 因为网上资料主要都在说 xargs的如下作用: 1. 给其他命令传递参数的一个过滤器 2. xargs可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。 3. 防止溢出, 一次从标准输入只读取一部分值, 但是我这里不存在溢出的问
2016-04-11 10:10:30 1407
转载 使用graphviz绘制流程图
写博客或者论文, 经常要画图来展示思路, 但是Visio有些时候太重, 我只希望根据我的输入,自动帮我把布局搞定, 不需要我拖拽. 而且最好存为文本格式, 不占地方, 修改方便. 最近发现一个比较有意思的软件, 正好满足我的需求, 就是这篇转载文章的主角:graphviz. 前言日常的开发工作中,为代码添加注释是代码可维护性的一个重要方面,但是仅仅提供注释是不够的,特别是当
2016-04-08 10:56:20 1393
原创 Android 生命周期中每个函数适合处理的事件
Google官网给的Activity声明周期图: 从这种图中,我们可以知道Activity生命周期是: onCreate -> onStart -> onResume -> onPause -> onStop ->onDestroy. 更详细一点就是 onCreate是ActivityA创建时调用, onStart是用户能看见ActivityA时调用(但是不可以交互), onResume是用户
2016-04-07 16:21:30 1619 3
原创 16年阿里电话面试总结
上周阿里打电话点面,总共40多分钟,感觉好多点虽然回答了,但是不是回答的太清楚,这里在重新复习下. 由于时间较久,只记得大部分问题,而且顺序可能颠倒, 1. 项目简介 刚开始是让介绍下简历上的项目. 我在简历上写了两个项目, 面试官让我挑一个自己收获最大的来介绍, 介绍中有的我只是说了某个点, 很nice的面试官还会帮我补全. 2. 常用集合 set 先是问我常用的java集合, 我从
2016-03-29 10:25:43 245
原创 一行Shell代码查找所有代码行数
最近写简历, 想算下自己的这个项目一共有多少行代码, 好方便在简历上展示. 本来想着一直用git管理代码, 顺便统计下好了. 结果竟然没有在git中找到单独统计行数的工具, 太出乎我意料了. 最近用Cmder挺方便, 就想用shell统计下代码行数, 应该就是一两个命令的事.用Java, Python肯定可以实现, 但是感觉太重, 我只是想随便查查我的代码一共有多少行, 3秒钟就可以搞定的那种, 不
2016-03-07 14:47:19 2627
原创 <Android编程权威指南>之1.6 Activity.this和this的区别
public class QuizActivity{ ... mFalseButton.setOnClickListaner(new View.OnClickListener(){ @Override public void onClick(View v){ Toast.makText(QuizActivity.this,
2016-03-06 15:12:48 1040
原创 程序集版本号,文件版本号及发布版本号管理
程序集版本号:在.net框架中和CLR运行时钟引用,如使用程序集的强命名时就会使用. 按照我的理解,你所使用的库如log4net,常见的有2.0和4.0的,那么你下载的库是否是你工程中用的库,就要看这个程序集版本号. 比如我自己写了一个库,叫Tool,程序集版本号是1.0.0.0,然后Work工程引用了这个dll.现在Tool更新了,程序集版本号变成了2.0.0.0,那么Work在不修改的情况下
2016-02-22 10:27:32 8627
原创 Windows下Git和GitExtension配置
先提下写这篇博客遇到的坑,截图千万不要存为bmp格式,要存为png或其他.大小相差特别大,bmp格式1.3mb,png才80kb.加载速度快了不是一点点.详细配置参见这篇文章. 我只简要说下需要哪些工具,以及一个才搞清楚的问题:为什么有时候GitExtension打死都不出来加载私匙的对话框,就像下图,PuTTY SSH 加载SSH密匙,这里经常就莫名其妙的消失了,虽然我承认我手贱不知道改了哪里:
2016-01-07 22:30:24 10741
netlib-native_system-win-x86_64全套
2015-12-14
windows下快速安装python中的setuptools脚本
2013-10-02
OPENGL所需库及环境变量配置
2013-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人