- fragment实现多个页面切换
杰奎琳子
现在的APP首页大部分屏幕的下方显示一行Tab标签选项,点击不同的标签就可以切换到不同的界面。如下图:我们之前都是用TabHost来实现,但是殊不知,TabHost并非是那么的简单,它的可扩展性非常的差,不能随意地定制Tab项显示的内容,而且运行还要依赖于ActivityGroup。ActivityGroup原本主要是用于为每一个TabHost的子项管理一个单独的Activity,但目前已经被废弃
- Android组件通信——ActivityGroup(二十五)
毛栗子201105
Android开发语言android
1.ActivityGroup1.1知识点(1)了解ActivityGroup的作用;(2)使用ActivityGroup进行复杂标签菜单的实现;(3)使用PopupWindow组件实现弹出菜单组件开发;1.2具体内容packagecom.example.activitygroupproject;importandroid.app.ActivityGroup;importandroid.conte
- Andorid 广告页3D旋转进入主页(仿ios Swift动画 )
Ready_I
20170731131804631.gif1,Android原本一些overridePendingTransition用来跳转activity切换动画,并不支持那么完美的3d旋转动画,有些手机并不能支持2,利用Activity继承ActivityGroup(不支持使用该方法),包裹两个Activity,通过获取该view,addview到该Group的布局中,经过测试,太卡但是需求必须得做,就找到
- 从入门到实战,Android学习路线大全,程序员翻身之路
智恩架构师
程序员架构移动开发android
多Acitivity管理:AndroidManifest.xml文件的作用Intent的使用方法使用Intent传递数据的方法启动Activity的方法IntentFilter的使用方法ActivityGroup的使用方法自定义控件实现方法:自定义ListView的实现方法可折叠ListView的使用方法自定义Adapter的实现方法自定义View的实现方法动态控件布局的上实现方法android网
- Fragment代替TabActivity和ActivityGroup
码农一颗颗
本篇文章属于架构重构。由于Android很早就废弃了TabActivity,但是我们的项目还在使用,所以要将他替换掉。项目地址:https://github.com/jiahongfei/UITabDemo目录.pngTabActivity废弃当前公司的App使用的UITab架构还是很老的TabActivity+TabHost+Activity形式,这是个历史遗留问题,也不去纠结当时为什么要这么做
- Android 开发艺术探索笔记(18)
RikkaTheWorld
Android开发艺术探索
1.Activity的工作过程我们从startActiviity方法开始分析,startActivity有好几种重载方式,但最终都会调用startActivityForResult方法,它的实现如下:在mParent==null中,mParent代表的是ActivityGroup。ActivityGroup最开始被用来在一个界面中嵌入多个子Activity,但是其在API13就被丢弃了,系统采用F
- android 平滑切换屏幕的几种方法总结
蚁人日记
易忘记
第一种:ViewFlipper+GestureDetector第二种:ActivityGroup+GestureDetector第三种:ViewPager(Android3.0+)第四种:ViewFlow(开源项目)(示例:http://download.csdn.net/detail/feng88724/3812764)关于第一种方法,很多人用过就只说一下思路:用ViewSwitcher,加上动
- Android开发艺术探索 - 第9章 四大组件的工作过程
矢口
编程AndroidJava
1.Activity启动过程ref从Activity的startActivity方法开始。startActivity的多个重载方法,最终都会调用startActivityForResult方法。mParent代表的是ActivityGroup,API13之前用于在一个界面中嵌入多个Activity,之后被Fragment替代,所以这里一般为null。该方法中主要调用了Instrumentation
- 使用Fragment实现Tab切换(高仿微信主界面)
ruancoder
Android基础
先来看效果图:在2.x版本时代,我们都是使用TabActivity和TabHost组合来实现页面的tab切换。TabActivity是一个特殊的Activity,它继承自ActivityGroup,内部可容纳多个Activity,违反了Activity的单一窗口原则,虽风靡一时却难免被抛弃。3.0版本出现之后,Google推出了一个新的类Fragment,且TabActivity已经被标注为Dep
- TabActivity中某一个tab内切换activity的方法
chuibb001
Android
之前写的程序要用到TabActivity,其中一个tab下有个多级列表,其实就是像“设置‘切换页面一样,倒是如果直接启动一个activity,你会发现这个activity会变成全屏的,和之前的TabActivity半毛钱关系木有,所以,当时我感觉这个问题很麻烦呢。后来我进去TabActivity里面发现,TabActivity其实就是继承自ActivityGroup,然后想起来之前看到的一片文章,
- 解决ActivityGroup的sub Activity中spinner的WindowManager$BadTokenException的问题
guoery
android
在ActivityGroup的subactivity中直接使用Spinner会遇到下面的异常信息:ERROR/AndroidRuntime(964):FATALEXCEPTION:mainERROR/AndroidRuntime(964):android.view.WindowManager$BadTokenException:Unabletoaddwindow--tokenandroid.app
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
單tc
转自http://www.cnblogs.com/answer1991/archive/2012/05/08/2489844.htmlActivityGroup在实际的开发中是十分常见的,在我使用过的Android应用中,十个应用里面有九个应用的主界面都是使用ActivityGroup的。说起ActivityGroup,在国内好像直接使用它开发的并不多,基本都是使用TabActivity,它是Ac
- Android 技术文章
Arison
Android功能描述链接地址Activity使用ActivityGroup在TabHost标签页内中跳转Activityhttp://blog.csdn.net/lfyx1357/article/details/7467194activity中的onPause()和onSaveInstanceState()解析http://blog.csdn.net/dashuxiaoai/article/de
- Android Fragment嵌套ViewPager,ViewPager嵌套多个Fragment
小铭、同学
Android
前几天,项目中要实现这么一个功能。就配置了下。其实很简单,首先需要阅读下我转载的前两篇文章,都是转载的郭神的,写的非常好。我的项目中逢者必用,其实就相当于一个很好的框架来使用,非常方便。前两篇的项目地址AndroidFragment应用实战,使用碎片向ActivityGroup说再见和AndroidActionBar应用实战,高仿微信主界面的设计,认真阅读,你会感觉到受益颇深。(当然,如果你不是大
- Android在ActivityGroup里面使用startActivityForResult
Simtice
Android
假如现在有个ActivityGroupA,里面有两个子ActivityB和C,在C里面跳转到另一个ActivityD,然后在D里面执行了某些操作,finish了再返回D的时候,刷新D界面。该如何实现呢?如果在C里面,c.startActivityForResult(D,0),然后在Dfinish()之前setResult(1),那么在C的onActivityResult里面是接收不到从D返回过来的
- Android网易顶部导航栏(用ActivityGroup实现动态加载)
YAnG_Linux
Android
随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候想网易新闻要显示的内容太多,而且又想在主页面全部显示出来,所以有加了顶部导航栏,但是android这样的移动设备内存是受限的,那么多界面缓存到内存中,很容易导致内存溢出,这个是比较致命的,所以不得不考虑。虽然我在之前也做过网易的顶部导航栏但是哪种方式并不好,就像使用vie
- Android ActivityGroup和ViewFlipper实现两个Activity滑动(animation.translate)切换
JohnZhang_
Android
之前在公司做一个Android应用的时候需要实现一个滑动注册登入界面,上网找了很久都没有相关资料,最后看了若干代码和自己研究之后终于实现了。小计一下:Demo结构图:其中,ActivityGroupDemoActivity是主显示界面,继承了ActivityGroup,ActivityOne和ActivityTwo分别是要切换的两个Activity。Anim文件夹里是4个滑动动画(左进、左出、右进
- android 两种方式模仿微信界面滑动切换Activity
cby0310
Android
先上图:代码中主要运用了ViewPager来实现页面的滑动切换Activity,还有值得一看的是利用popwindow显示下展开的选项菜单,下拉刷新等,想实现类似功能的可以下载看一下,我也在次小计一下。ActivityGroup和ViewPager结合或者Fragment和ViewPager结合都是可以实现的,但ActivityGroup已经显示过时,确实在最近的项目中发现了它的弊端,它是在任一子
- Android-开发遇到的问题汇总
Android-Yaku
Android
1.ActivityGroup中某一FragmentActivity的onActivityResult()方法不执行。因为在FragmentActivity跳转时getParent()执行startActivityForResult()方法,因此会在ActivityGroup中执行onActivityResult()方法。2.使用Java代码为Button字体颜色添加Selector。添加Sele
- ViewPager之引导界面---实现欢迎引导页面
judyge
js与前端
最近在看ViewPager,于是乎弄个引导界面来玩玩.....引导界面,采用现在比较主流的方式:左右滑动加载;小圆点提示;在最后一个页面,点击button,进入功能界面第一种:ViewFlipper+GestureDetector第二种:ActivityGroup+GestureDetector第三种:ViewPager(Android3.0+)第四种:ViewFlow(开源项目)这里弄的是第三种
- 竖直滑动的viewpager-------VerticalAdapter
shan1021
因为项目的需求找了下viewpager是否可以竖直滑动,貌似还真不行,就找到了VerticalAdapter,从网上找到了一个例子,但是那个例子对按钮没有反应修改后,按钮可以响应,具体如下1、extendsActivityGroup,类要继承ActivityGroup2、@SuppressWarnings("deprecation")ArrayListviews=newArrayList();@S
- Android用shareUserID实现多个Activity显示在同一界面
weixin_30840573
移动开发javaui
近来整理文档,发现两年前研究Android多个Activity叠加显示的方案。时光荏苒,一去不回。虽然后来没有用上,但还是整理如下,Android版本还是2.2的:ActivityGroup描画方式的研究结果如下:可以实现同一进程内的Activity叠加通过设置两个AndroidApp的sharedUserID,可以使这两个App运行在同一进程上通过Message来实现进程内App的交互结论:该方
- Android 应用开发笔记(一)
Arisono
【综合架构】
Android功能描述链接地址生命周期使用ActivityGroup在TabHost标签页内中跳转Activityhttp://blog.csdn.net/lfyx1357/article/details/7467194activity中的onPause()和onSaveInstanceState()解析http://blog.csdn.net/dashuxiaoai/article/detail
- 使用ActivityGroup类显示多个Activity
Phenixyf
AndroidUIAndroid控件功能实例
有些情况下需要把一个Activity分割成几部分,如上半部分绘制图形,下半部分显示图表,这时就需要用到ActivityGroup。定义一个类继承自ActivityGroup,Java文件如下:123456789101112131415161718192021222324252627282930313233343536373839404142packagecom.h.callsta;importan
- Android中使用Fragment实现标题栏(不可滑动)
MiMillet
Android-学习整理
首先,声明一下,此篇文章是学习自郭林大神的《AndroidFragment应用实战,使用碎片向ActivityGroup说再见》,链接在此:http://blog.csdn.net/guolin_blog/article/details/131711911、先来一张效果图:2、注意:使用的是:importandroid.app.FragmentManager;importandroid.app.F
- Activity官方API讲解
小坤_Android
一个活动是一个单一的,集中的东西,用户可以做的。几乎所有的活动与用户交互,因此Activity类需要创建为您窗口,在其中您可以将您的UI与照顾的setContentView(查看)。而活动经常呈现给用户作为全屏窗口,它们也可以以其他方式使用:作为浮动窗口(经由与主题windowIsFloating组)或嵌入另一活性(使用的内部的ActivityGroup)。有两种方法几乎所有活动的子类将实施:的o
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(一)
跳跳
TabActivityTabHost
转自:http://www.cnblogs.com/cpcpc/archive/2011/06/23/2123015.html许多软件,因为功能比较多,都喜欢采用Tab分页。在Android里面Tab分页,常用的方法有两种:1、采用TabActivity和TabHost的结合2、采用ActivityGroup和GridView的结合。这里将会一一讲到他们的实现方法。现在,先讲讲TabActivit
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
stefzeus
[技术体验]
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/13171191现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决AndroidPad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别
- activitygroup的子activity中嵌套webview,利用webview与js交互,在实现js点击的内部类代码中实现activity跳转出现的线程问题
融化的雪
androidwebviewtabhostactivitygroup
A:1、好好说说这个问题,底部导航栏用的是tabhost,没有用fragment,因为一开始做的时候没要求用底部导航栏,所以其他的activity都做好了(例如地图、天气等),如果用fragment的话是没办法嵌套activity的,一定会出错的,所以只能用activitygroup来管理子activity,2、第一个子activity中要嵌套webview,根据之前的文章,android4.2以
- 实现MapFragment(二)
seker_xinjian
Android
本文内容为原创,转载者请注明原始作者以及原始出处,以避免版权纠纷!在没有出现Fragment之前,为了避免Activity频繁的切换而带来的用户体验低下的问题,肯定有不少人用过ActivityGroup或者TabActivity。实际上ActivityGroup及其子类最大的用处就是能将多个Activity显示在同一个屏幕上,而没有Activity之间的切换(准确的说是:没有了Activity全屏
- 多线程编程之存钱与取钱
周凡杨
javathread多线程存钱取钱
生活费问题是这样的:学生每月都需要生活费,家长一次预存一段时间的生活费,家长和学生使用统一的一个帐号,在学生每次取帐号中一部分钱,直到帐号中没钱时 通知家长存钱,而家长看到帐户还有钱则不存钱,直到帐户没钱时才存钱。
问题分析:首先问题中有三个实体,学生、家长、银行账户,所以设计程序时就要设计三个类。其中银行账户只有一个,学生和家长操作的是同一个银行账户,学生的行为是
- java中数组与List相互转换的方法
征客丶
JavaScriptjavajsonp
1.List转换成为数组。(这里的List是实体是ArrayList)
调用ArrayList的toArray方法。
toArray
public T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分
- Shell 流程控制
daizj
流程控制if elsewhilecaseshell
Shell 流程控制
和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):
<?php
if(isset($_GET["q"])){
search(q);}else{// 不做任何事情}
在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样 if else if
if 语句语
- Linux服务器新手操作之二
周凡杨
Linux 简单 操作
1.利用关键字搜寻Man Pages man -k keyword 其中-k 是选项,keyword是要搜寻的关键字 如果现在想使用whoami命令,但是只记住了前3个字符who,就可以使用 man -k who来搜寻关键字who的man命令 [haself@HA5-DZ26 ~]$ man -k
- socket聊天室之服务器搭建
朱辉辉33
socket
因为我们做的是聊天室,所以会有多个客户端,每个客户端我们用一个线程去实现,通过搭建一个服务器来实现从每个客户端来读取信息和发送信息。
我们先写客户端的线程。
public class ChatSocket extends Thread{
Socket socket;
public ChatSocket(Socket socket){
this.sock
- 利用finereport建设保险公司决策分析系统的思路和方法
老A不折腾
finereport金融保险分析系统报表系统项目开发
决策分析系统呈现的是数据页面,也就是俗称的报表,报表与报表间、数据与数据间都按照一定的逻辑设定,是业务人员查看、分析数据的平台,更是辅助领导们运营决策的平台。底层数据决定上层分析,所以建设决策分析系统一般包括数据层处理(数据仓库建设)。
项目背景介绍
通常,保险公司信息化程度很高,基本上都有业务处理系统(像集团业务处理系统、老业务处理系统、个人代理人系统等)、数据服务系统(通过
- 始终要页面在ifream的最顶层
林鹤霄
index.jsp中有ifream,但是session消失后要让login.jsp始终显示到ifream的最顶层。。。始终没搞定,后来反复琢磨之后,得到了解决办法,在这儿给大家分享下。。
index.jsp--->主要是加了颜色的那一句
<html>
<iframe name="top" ></iframe>
<ifram
- MySQL binlog恢复数据
aigo
mysql
1,先确保my.ini已经配置了binlog:
# binlog
log_bin = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.log
log_bin_index = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.index
log_error = D:/mysql-5.6.21-win
- OCX打成CBA包并实现自动安装与自动升级
alxw4616
ocxcab
近来手上有个项目,需要使用ocx控件
(ocx是什么?
http://baike.baidu.com/view/393671.htm)
在生产过程中我遇到了如下问题.
1. 如何让 ocx 自动安装?
a) 如何签名?
b) 如何打包?
c) 如何安装到指定目录?
2.
- Hashmap队列和PriorityQueue队列的应用
百合不是茶
Hashmap队列PriorityQueue队列
HashMap队列已经是学过了的,但是最近在用的时候不是很熟悉,刚刚重新看以一次,
HashMap是K,v键 ,值
put()添加元素
//下面试HashMap去掉重复的
package com.hashMapandPriorityQueue;
import java.util.H
- JDK1.5 returnvalue实例
bijian1013
javathreadjava多线程returnvalue
Callable接口:
返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。
Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
ExecutorService接口方
- angularjs指令中动态编译的方法(适用于有异步请求的情况) 内嵌指令无效
bijian1013
JavaScriptAngularJS
在directive的link中有一个$http请求,当请求完成后根据返回的值动态做element.append('......');这个操作,能显示没问题,可问题是我动态组的HTML里面有ng-click,发现显示出来的内容根本不执行ng-click绑定的方法!
 
- 【Java范型二】Java范型详解之extend限定范型参数的类型
bit1129
extend
在第一篇中,定义范型类时,使用如下的方式:
public class Generics<M, S, N> {
//M,S,N是范型参数
}
这种方式定义的范型类有两个基本的问题:
1. 范型参数定义的实例字段,如private M m = null;由于M的类型在运行时才能确定,那么我们在类的方法中,无法使用m,这跟定义pri
- 【HBase十三】HBase知识点总结
bit1129
hbase
1. 数据从MemStore flush到磁盘的触发条件有哪些?
a.显式调用flush,比如flush 'mytable'
b.MemStore中的数据容量超过flush的指定容量,hbase.hregion.memstore.flush.size,默认值是64M 2. Region的构成是怎么样?
1个Region由若干个Store组成
- 服务器被DDOS攻击防御的SHELL脚本
ronin47
mkdir /root/bin
vi /root/bin/dropip.sh
#!/bin/bash/bin/netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F:‘{print $1}’|sort|uniq -c|sort -rn|head -10|grep -v -E ’192.168|127.0′|awk ‘{if($2!=null&a
- java程序员生存手册-craps 游戏-一个简单的游戏
bylijinnan
java
import java.util.Random;
public class CrapsGame {
/**
*
*一个简单的赌*博游戏,游戏规则如下:
*玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,
*如果点数和为2、3或12,则玩家输,
*如果和为其它点数,则记录第一次的点数和,然后继续掷骰,直至点数和等于第一次掷出的点
- TOMCAT启动提示NB: JAVA_HOME should point to a JDK not a JRE解决
开窍的石头
JAVA_HOME
当tomcat是解压的时候,用eclipse启动正常,点击startup.bat的时候启动报错;
报错如下:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME shou
- [操作系统内核]操作系统与互联网
comsci
操作系统
我首先申明:我这里所说的问题并不是针对哪个厂商的,仅仅是描述我对操作系统技术的一些看法
操作系统是一种与硬件层关系非常密切的系统软件,按理说,这种系统软件应该是由设计CPU和硬件板卡的厂商开发的,和软件公司没有直接的关系,也就是说,操作系统应该由做硬件的厂商来设计和开发
- 富文本框ckeditor_4.4.7 文本框的简单使用 支持IE11
cuityang
富文本框
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>知识库内容编辑</tit
- Property null not found
darrenzhu
datagridFlexAdvancedpropery null
When you got error message like "Property null not found ***", try to fix it by the following way:
1)if you are using AdvancedDatagrid, make sure you only update the data in the data prov
- MySQl数据库字符串替换函数使用
dcj3sjt126com
mysql函数替换
需求:需要将数据表中一个字段的值里面的所有的 . 替换成 _
原来的数据是 site.title site.keywords ....
替换后要为 site_title site_keywords
使用的SQL语句如下:
updat
- mac上终端起动MySQL的方法
dcj3sjt126com
mysqlmac
首先去官网下载: http://www.mysql.com/downloads/
我下载了5.6.11的dmg然后安装,安装完成之后..如果要用终端去玩SQL.那么一开始要输入很长的:/usr/local/mysql/bin/mysql
这不方便啊,好想像windows下的cmd里面一样输入mysql -uroot -p1这样...上网查了下..可以实现滴.
打开终端,输入:
1
- Gson使用一(Gson)
eksliang
jsongson
转载请出自出处:http://eksliang.iteye.com/blog/2175401 一.概述
从结构上看Json,所有的数据(data)最终都可以分解成三种类型:
第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"ickes"这个字符串。
第二种类型是序列(sequence),又叫做数组(array)
- android点滴4
gundumw100
android
Android 47个小知识
http://www.open-open.com/lib/view/open1422676091314.html
Android实用代码七段(一)
http://www.cnblogs.com/over140/archive/2012/09/26/2611999.html
http://www.cnblogs.com/over140/arch
- JavaWeb之JSP基本语法
ihuning
javaweb
目录
JSP模版元素
JSP表达式
JSP脚本片断
EL表达式
JSP注释
特殊字符序列的转义处理
如何查找JSP页面中的错误
JSP模版元素
JSP页面中的静态HTML内容称之为JSP模版元素,在静态的HTML内容之中可以嵌套JSP
- App Extension编程指南(iOS8/OS X v10.10)中文版
啸笑天
ext
当iOS 8.0和OS X v10.10发布后,一个全新的概念出现在我们眼前,那就是应用扩展。顾名思义,应用扩展允许开发者扩展应用的自定义功能和内容,能够让用户在使用其他app时使用该项功能。你可以开发一个应用扩展来执行某些特定的任务,用户使用该扩展后就可以在多个上下文环境中执行该任务。比如说,你提供了一个能让用户把内容分
- SQLServer实现无限级树结构
macroli
oraclesqlSQL Server
表结构如下:
数据库id path titlesort 排序 1 0 首页 0 2 0,1 新闻 1 3 0,2 JAVA 2 4 0,3 JSP 3 5 0,2,3 业界动态 2 6 0,2,3 国内新闻 1
创建一个存储过程来实现,如果要在页面上使用可以设置一个返回变量将至传过去
create procedure test
as
begin
decla
- Css居中div,Css居中img,Css居中文本,Css垂直居中div
qiaolevip
众观千象学习永无止境每天进步一点点css
/**********Css居中Div**********/
div.center {
width: 100px;
margin: 0 auto;
}
/**********Css居中img**********/
img.center {
display: block;
margin-left: auto;
margin-right: auto;
}
- Oracle 常用操作(实用)
吃猫的鱼
oracle
SQL>select text from all_source where owner=user and name=upper('&plsql_name');
SQL>select * from user_ind_columns where index_name=upper('&index_name'); 将表记录恢复到指定时间段以前
- iOS中使用RSA对数据进行加密解密
witcheryne
iosrsaiPhoneobjective c
RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名.
本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境
mac os
openssl-1.0.1j, openssl需要使用1.x版本, 推荐使用[homebrew](http://brew.sh/)安装.
Java 8
RSA基本原理
RS