- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 Spring Boot(一) 入门
一、创建项目进入http://start.spring.io/快速创建一个springboot项目选择gradle构建,填写包名等信息后下载代码到本地,导入到idea。二、代码1、自动生成了如下代码@SpringBootApplication表示这是个springboot应用,点击左侧的绿色三角形即可启动项目,由于springboot内置了Tomcat,所以不需要手动配置。(Application类
2017-10-16 11:49:17 530
原创 Volley
1、Volley的简单使用: 首先创建requestQueue请求队列: RequestQueue requestQueue = Volley.newRequestQueue(context); 接着创建请求,这里以StringRequest为例:StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
2017-04-11 16:31:45 312
原创 NDK入门
1、安装NDK开发工具:进入Android Studio->Preferences->Android SDK->SDK Tools,找到NDK安装: 2、新建project,在gradle.properties中加入android.useDeprecatedNdk=true在app中的build.gradle的defaultConfig中加入ndk { moduleName
2017-03-30 11:29:22 370
原创 Rxjava2
1、创建被观察者Flowable: Flowable<String> flowable = Flowable.create(new FlowableOnSubscribe<String>() { @Override public void subscribe(FlowableEmitter<String> e) throws Exception {
2017-03-29 19:02:20 553
原创 Retrofit源码学习之动态代理
我们已经知道retrofit的主要作用是把一个接口解析包装成http的请求,由OKhttp发送。用到的技术就是动态代理。动态代理的作用就是当你要调用某个Class的方法前或后,插入你想要执行的代码。接下来我们看一下如何实现动态代理。 一、定义接口:public interface UserListener { String getName(); int getAge();}二、创
2017-03-11 13:30:37 3013
原创 Android复习之Activity的一切
一、生命周期 Activity的生命周期是老生常谈的话题了。主要有如下七个方法: onCreate() 创建Activity调用, onStart() Activity可见了,但是不能与用户交互, onResume() Activity获得焦点,可以与用户交互, onPause(), onStop() Activity不可见, onDestroy() Activity销毁不可见, 以
2017-03-11 12:56:33 253
原创 Effiective Java读书笔记——第2章 创建和销毁对象
第1条:考虑用静态工厂方法代替构造函数。 例子:Boolean类的静态工厂方法:public static Boolean valueOf(boolean b){ return (b?Boolean.True:Boolean.FALSE);}好处: 1、与构造函数不同,静态工厂方法具有名字。如BigInteger(int,int,Random)返回的BigInteger可能是素数,如果
2017-02-26 15:24:50 256
原创 Java并发相关辅助类
1、CountDownLatch 作用:完成一组在其他线程的操作之前,使得一个或多个线程一直等待。 构造方法: CountDownLatch(int count) count为计数器的总数 其他方法: countDown(),每调用一次,count减一 await(),在count等于0之前,使得当前线程一直处于等待状 态,直到count等于
2017-02-22 14:41:15 428
原创 Thread相关方法介绍
1、Object.wait(),Object.notify() 作用:当在一个线程内调用object.wait方法后,这个线程会释放掉当前持有的对象锁,直到调用object.notify方法唤醒。 注意事项:需要在synchronized同步块中执行。 例子:final Object o = new Object(); Thread t1 = new Thread(new Ru
2017-02-22 11:24:41 276
原创 自定义LayoutManager
1、Recyclerview回收机制: 自定义LayoutManager时需要将不需要的View进行回收,在需要使用View时通过getViewForPosition获取View,这个View可能是之前回收的View,也可能是新new出来的,具体操作由recyclerView的recycler实现。 recyclerView内部有两个缓存:scrap和recycler。scrap缓存的View是
2017-02-14 16:19:40 380
原创 Rxjava操作符
1、map()操作符(一对一的转化)Observable.just("Hello") .map(new Func1<String, String>() { @Override public String call(String s) { re
2017-02-09 11:35:41 266
原创 Rxjava用法
1、RxJava基本概念: Observable(可观察者,被观察者)、Observer(Subscriber)(观察者)、subscribe(订阅)。Observable和Observer通过subscribe相关联。2、创建Observer(subscriber)即观察者Observer<String> observer = new Observer<String>() {
2017-02-09 11:04:02 271
原创 使用camera、matrix仿即刻APP换一换
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //画当前图片 camera.save(); camera.rotateX(0); camera.getMatrix(matrix); camera.rest
2017-02-06 19:08:40 756
原创 RecyclerView之ItemTouchHelper仿今日头条频道管理拖动
Github地址:这里写链接内容 ItemTouchHelper的使用ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { @Override public int getMovementFlags(RecyclerView rec
2017-01-03 20:21:55 2027
原创 Android图片操作工具类
package com.aliyun.oss.ossdemo;import android.app.Activity;import android.app.AlertDialog;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Handler;import andr
2016-05-10 11:22:36 963
原创 Android 5.0 自定义dialog 背景不透明解决方法
在android 5.0 以上的版本中,自定义的dialog如果有圆角的话背景底部会出现白色,如图: 解决方法是在style.xml文件中定义一个dialog的样式,代码如下:<style name="Dialog" parent="android:style/Theme.Dialog"> <item name="android:background">#00000000</ite
2016-04-28 14:42:18 1479
原创 Android 文件操作
写入文件public static boolean saveObject(Context context, Serializable serializable, String file) { FileOutputStream fos = null; ObjectOutputStream oos = null; try { fos
2016-04-11 20:07:40 355
原创 DrawerLayout+FragmentTabHost+ToolBar实现左滑菜单及fragment切换
1、drawerlayout是谷歌官方的侧滑菜单布局,drawerlayout下的第一个布局被视为主布局,第二个被视为左滑菜单,第三个为右滑菜单<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:
2016-03-14 19:18:54 1801
原创 Handler用法
一、handler + runnableHandler mHandler = new Handler();//将runnable加入到handler的线程队列中mHandler.post(runnable);Runnable runnable = new Runnable() { @Override public void run() {
2016-03-08 20:14:10 329
原创 Jenkins持续集成测试之Android单元测试
一、单元测试代码的编写 1、在Android Studio的创建的Android项目中,test文件夹下的ExampleUnitTest类编写测试代码 2、写好后可在AS的Terminal中输入gradle命令:gradle test 进行测试,测试结果可在app\build\reports\tests\debug文件夹下的index.html查看 二、Jenkins的相关配置 1、进入jo
2016-03-07 18:00:48 1692
原创 Android gradle配置
project下的build.gradle文件配置buildscript { repositories { maven{ url "http://.../content/repositories/thirdparty" //maven私服上存放第三方jar包的地址 } maven{ url "ht
2016-03-03 11:49:51 445
原创 Android自定义view
一、自定义属性 1、在values文件夹下新建attrs.xml文件 2、自定义属性name:名字,format:类型<resources> <attr name="mText" format="string"></attr> <attr name="textSize" format="dimension"></attr> <attr name="textColor" f
2016-03-02 16:57:07 276
转载 Android属性动画(ObjectAnimation)
public void objectAnimation(View v){ LinearLayout llProgress = (LinearLayout) findViewById(R.id.ll_progress); final float scale = getResources().getDisplayMetrics().density; flo
2016-03-01 13:48:46 923
原创 Java反射
一、对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对象,都能调用他的任意一个方法 二、获取反射机制的三种方法 1、Class c1 = Class.forName(“Employee”) 2、Class c2 = Employee.class; 3、Employee e = new Employee(); Class c3 = e.getClass(); 创建对
2016-03-01 10:16:47 217
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人