Android安全加密:对称加密与非对称加密
凯撒密码 1. 介绍 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3 的时候,所有的字母A 将被替换成D,B 变成E,由此可见,位数就是凯撒密码加密和解密的密钥。 例如:字符串”ABC”的每个字符都右移3...
View ArticleAndroid设置item的行间距,以及去掉分割线方法
1.设置item的行间距: 可以在xml布局文件中的listView下设置xml属性: android:divider="#00000000" android:dividerHeight="18dp" 解释:分隔线透明,高度为18dp。 2.去掉item之间的分割线: 每个item之间都有分割线,如果单纯想去掉分割线,方法还是很多的: 法1:设置android:divider="@null"...
View ArticleEcilpse中单元测试的使用
Eclipse上的单元测试使用步骤 方法1 1.新建一个 Andoird Test Project 2.输入项目名称后在已有工程下选择一个要测试的工程进行关联,点击finish。 3.这个时候打开AndroidMainifest,会发现多出以下两个代码块,一个是引用库,一个是你目标工程的包名。 4.新建一个类继承AndroidTestCase...
View ArticleAndroid 消息处理机制2(从源码分析)
跟随着上篇 Android 消息处理机制1(从源码分析),下面介绍 “猪脚光环的” : Handler 、Message 、MessageQueue Looper。并以Java 程序模拟安卓的消息处理机制 Handler 在前面已经介绍过了,从创建Handler 实例顺藤摸瓜… Handler 原理 Handler 封装了消息的发送 (— > 发给谁) 【默认指向自己】 Handler...
View Article深入理解ButterKnife源码并掌握原理(一)
前言 话说在android这座大山里,有一座庙(方块公司-square),庙里住着一个神-jake(我是这么叫的嘻嘻)。 不要小看这个小jake,这个神可是为android应用开发们提供了强有力的帮助。比如流行的开源库okhttp,eventbus系列 ,retrofit,butterknife...
View Article深入理解ButterKnife源码并掌握原理(二)
好,我们接着parseBindView的步骤3 ,忘记了在哪里了,咦,可以看下上一篇,哈哈。 步骤3 BindingClass bindingClass = targetClassMap.get(enclosingElement); if (bindingClass != null) { ViewBindings viewBindings =...
View Article深入理解ButterKnife源码并掌握原理(三)
上两篇我们分析完了处理器的process方法的findAndParseTargets方法来获取了一个集合,该集合包含了你使用注解的类的TypeElement和这个类中的注解的实例BindingClass。 我们再看下处理器的核心方法 process方法 @Override public boolean process(Set<? extends TypeElement>...
View Article接口定义语言AIDL实现进程间的通信
在Android中,如果我们需要在不同进程间实现通信,就需要用到AIDL技术去完成。 AIDL(Android Interface Definition...
View ArticleAndroid简易实战教程--第二十九话《创建图片副本》
承接第二十八话加载大图片,本篇介绍如何创建一个图片的副本。 安卓中加载的原图是无法对其修改的,因为默认权限是只读的。但是通过创建副本,就可以对其做一些修改,绘制等了。 首先创建一个简单的布局。一个放原图,一个放副本copy <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"...
View Article探究underscore v1.8.3版本源码
一直想学习一下类库的源码, jQuery 刚刚看到选择器那块,直接被那一大块正则搞懵逼了。经过同事的推荐,选择了 underscore 来作为类库研究的起点。 闭包 所有函数都在一个闭包内,避免污染全局变量,这没什么特殊的,略过。。。 (function() { ... }()); 全局对象的获取 先看下面一段代码: var root = typeof self == 'object'...
View Article工作中遇到的Android内存优化问题(3)-leakcanary源码解析
今天我们来看一下一个内存泄漏检测神器 leakcanary(https://github.com/square/leakcanary) 首先我们来看一下leakcanary的使用说明 就这么多,只需要一行代码,太简单了,简单得都有点怀疑它了。 我们来看一下一个简单的例子,也是它官方源码中提供的一个例子,这个因为太小了我就截了个图...
View ArticleAndroid SwipeRefreshLayout下拉刷新控件源码简单分析
咱们在做Android APP开发的时候经常碰到有下拉刷新和上拉加载跟多的需求,这篇文章咱们先说说下来刷新,咱们就以google的原生的下拉刷新控件SwipeRefreshLayout来看看大概的实现过程。...
View ArticleAndroid View的事件分发机制(二)
如果你还没看我的第一篇事件分发机制的话,现在赶紧去看Android View的事件分发机制(一) 这一节才是真正的从源码的角度去分析View的事件分发机制,结合第一篇去看,理解会更深刻。首先,要明白我们分析的对象就是MotionEvent,它包括三种典型的事件类型: ACTION_DOWN:手指刚接触屏幕。 ACTION_MOVE:手指在屏幕上移动。 ACTION_UP:手指从屏幕上松开的一瞬间。...
View ArticleAndroid中常见的内存泄漏汇总
Android 内存泄漏总结 集合类泄漏 集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。比如上面的典型例子就是其中一种情况,当然实际上我们在项目中肯定不会写这么 2B...
View Article论字母导航的重要性,我们来实现一个联系人字母导航列表吧!
论字母导航的重要性,我们来实现一个联系人字母导航列表吧! 说起这个字母导航,我相信大家都不陌生,不论是联系人列表还是城市列表,基本上都是需要字母导航,那我们就有必要来研究一下这个思路的探索了,毕竟这是一个非常常用的功能,如果现在把轮子造好,那以后也可以节省很多的时间,同时,我们把思路理清楚了,对我们以后的帮助也是很大的,那好,既然如此,我们就一起来探索一下吧!...
View ArticleAT命令集详解
1.AT的历史与应用 1.1 AT的历史 AT命令集是由拨号调制解调器(MODEM)的发明者贺氏公司(Hayes)为了控制Modem发明的控制协议.AT是Attention的缩写,协议本身采用文本.每个命令均以AT打头,因此得名.这段历史参见http://en.wikipedia.org/wiki/Hayes_command_set...
View Article自定义View之实用渐变色进度条
在网上看到一个进度条效果图,非常美观,如下: 进行效果分解: 1,渐变色,看起来颜色变化并不复杂,使用LinearGradient应该可以实现。 2,圆头,无非是画两个圆,外圆使用渐变色的颜色,内圆固定为白色。 3,灰底,还没有走到的进度部分为灰色。 4,进度值,使用文本来显示; 5,弧形的头部,考虑使用直线进行连接,或者使用曲线,例如贝塞尔曲线;...
View ArticleFragment详解
Fragment 关于生命周期的图就不贴了,看着闹心,直接看方法解释吧 Fragment生命周期方法含义: public void onAttach(Context context)...
View ArticleSolr6.0与Jetty、Tomcat在Win环境下搭建/部署
摘要: Solr6的新特性包括增强的edismax,对SQL更好的支持——并行SQL、JDBC驱动、更多的SQL语法支持等,并且在Solr6发布以后,Solr5还在持续更新,对于想尝鲜Solr6的用户来说,与之前版本有什么不同,让我们一起来探究一下。 Solr6用默认的Jetty启动 需要的软件支持 JDK1.8以上 Solr6的安装包(solr-6.0.0.zip 大约140M)...
View Article