/JavaAyo

java的学习和测试工程,纯java工程,直接运行main方法

Primary LanguageJavaApache License 2.0Apache-2.0

JavaTest

java的测试项目,可以看做是java的ApiDemo,主要用于学习,也经常用来测试极光,七牛等服务器api, 实际上有什么好代码都可以加进来,直到这个工程不堪其重

目录:

src==>android:这里是仿安卓系统的东西,学习安卓原理用,注意,本工程里引入了android-4.1.1.4,忘了给okhttp还是rxjava还是retrofit用的了,自己仿安卓代码时,可能有些类你没写,但已经引进来了,所以建议不要使用原生安卓包名

Looper和Handler高仿

==================================

alert,toast风格的提示框: src-twinkle:一个基于swing的桌面版的notify框 src-jcommunique:也是一个基于swing的桌面版的notify框

一个平台无关的UI库:BeautyEye https://github.com/JackJiang2011/beautyeye 好像还可以构件安卓界面,希望你**也是仿安卓的 ——比想象的差

SmartInvoke,也是一个UI库,好像还提供了更多访问硬件的功能 http://www.oschina.net/p/invokeui ——好像是给flash用的

FengGUI,基于OpenGL的GUI框架,可以学习OpenGL用 http://www.oschina.net/p/fenggui ——没看

==================================

src==>com.cowthan:学习用,小工具,或者对一些东西的测试,如极光,加密解密,csv读写等,设计模式和排序算法的学习笔记也在里面 对应的lib应该在lib-tools下找

部分测试代码放到了src-test下,包括nutz,qiniu,retrofit,rxjava,这里的代码就截止于2016/5/3,不再往里加了,都应该放到com.cowthan下

1 csv读写

配合QQ手机助手,备份通讯录

忘了基于哪个jar包

2 极光

里面有美滴滴的推送测试

jar包: jpush-client-3.2.3.jar 不知道还需不需要依赖于别的jar包啊

3 rsa

公钥加密,私钥解密

和php服务器配合时,php的加密解密有个100多位字符的限制,所以需要把字符串拆成几分,各自加密解密

这里我觉得应该整理一下各个支付平台的key配置,和测试demo

jar包: org.apache.commons.lang.jar sun.misc.BASE64Decoder.jar

4 sort

排序算法学习

5 pattern

设计模式学习

6 keystore

给apk签名 获取keystore的签名

7 json

json的学习,FastJson,Gson各种库的对比,和通用套路

8 cmd

java执行命令行

9 image

Exif读写 gif和jpeg互转

jar包: jimi.jar:gif互转 Exif读写:metadata-extractor-2.7.0.jar

10 socket

socket学习,非nio的

例子1: 一个聊天室

客户端是JFrame小界面,以applet形式提供 可以作为桌面应用,也可以嵌入到网页里

服务器端就是单纯命令行,没啥,写的还挺好

好像没用到nio,如果要学习nio,可以从这个开始

WebContent配合ChatServlet用,如果要用,请做成web项目发布

11 netty

netty学习,netty是基于nio的库

可以实现各种协议,如http,TCP,UDP,WebSocket

nio干什么用:用实时性换来吞吐量,用一个线程里的轮询,换来一台主机可以管理更多连接,轮询的谁?轮询的连接,实时性怎么损失了?轮询啊,连接2有消息了,不能实时发现,必须等轮询到它, 不nio会怎么样?不nio就得用一个线程管理一个连接,一台主机又能开几个线程呢 既然是轮询所有连接,那每个单独的连接,就不能阻塞,所以叫nio

12 codeworld

代码屋的服务器端

13 nio

nio学习

应该基于share service

14 concurrent

并行库学习

====================================

src==>org.ayo:通用库,这里的代码应该保持干净,应该能直接被别的工程引入,或者直接拷到别的地方用, 这里有些库可能代码太多,就会单独开一个目录

  • 现有的
    • 常用类 :
      • Ayo:相当于Lang
      • JsonUtils:用的是Fastjson
      • 集合相关:Lists,Maps,OnWalk
      • 字符串相关:Strings
    • IO相关
      • Files:管理文件读写,路径获取,流操作
    • RxJava:
      • src-rxjava
    • Http相关:
      • src-okhttp3
      • src-okhttp3-ws
      • src-retrofit
      • 当然也有Rxjava的依赖,这几个库官方的sample都拷过来了
    • DB的orm库
      • 用的是nutz,在src-nutz下
    • 日志
      • 调试日志:JLog,以json打印所有log
    • 七牛相关
      • 因为七牛对我来说经常使用,所以放到通用库里,七牛唯一的问题是现在的版本基于okhttp2,但这里学的是okhttp3
      • org.ayo.qiniu是对七牛官方sdk的封装,官方代码在src-qiniu
      • src-qiniuz下有个test,这是以前对七牛的封装,有代码用,但以后不要再用了

====================================

1 nutz轻量级web mvc

在spring盛行的年代,一些个人小项目可以尝试一些其他的轻量级框架,nutz就是其中比较清新脱俗的一个

代码我已经不记得是哪个版本的了,拷过来就是为了研究,当然里面也有一些工具类,可以一用

  • 这里代码好像被我精简了,还剩的功能:

    • java语法糖
    • 数据库操作,orm的,这个是主打
    • 其他一些工具类,应该仔细研究研究,基于这个做一个纯java版工具库,以后和spring也能完美兼容
    • 配合netty写个http服务器的话,这个工程本身就可以转为一个web工程了
  • 后期还要添加的功能,虽然我已经心有余力不足

    • 安卓模板代码生成
    • 安卓xml生成
    • json转bean
    • 接口调试,swagger

2 okhttp2

jar包引了个2.6.0,主要是给七牛用

我自己也写了个测试类,只不过还没开始就结束了,所以说okhttp我根本没好好学过

3 okhttp3

jar包引了个3.2.0

ok2和3的出入还是比较大的,3应该作为学习的重点

3也是为了okhttputils和okhttpserver这两个工具库存在的,这两个库很好,不过是依赖于安卓的,

所以你能看到代码报错,但只是线程方面依赖于安卓,可以想办法转为普通java工程,毕竟在这里

测试是比较方便的

4 src-android的野心就比较大了

是为了写一套高仿安卓framework的代码,纯粹是为了没事写着玩,当然,有空的可能性不大

5 src-socket

一个聊天室,一个线程管理socket,没有用nio,可以学一学,改成nio版的,吞吐量增加,你就学到了

另外,通过这个你也可以学一学java桌面应用的开发,没事写个简单的小工具什么的都行

6 src-netty

netty学习笔记,还没开始学

7 design-pattern

设计模式学习代码

8 rxjava

测试demo

9 retrofit

学习示例

10 sort

一堆排序算法的实现

11 rsa

加密解密相关

12 jpush

极光后台,配置一下key,就可以测推送

13 src-qiniu

七牛的java接口,可以控制你的七牛空间

14 其他

  • 此外还有:
    • redis的java sdk
    • mqtt相关
    • guava相关
    • ClassyShark:apk反编译,谷歌官方出品,亲测good
    • 安卓性能分析工具
    • 安卓apk解析工具
    • 安卓keystore文件解析工具
    • java并发终极学习

15 jar包整理