一些小东西笔记

1.glide能直接模糊加载回来的图片

Glide.with(mContext).load(mUrl).bitmapTransform(new BlurTransformation(mContext, 15)).into(mImageView);

2.android分进程能保证能防止一些意外的APP崩溃.

android里面的进程分为五大类:
1.前台进程(Foreground process)
2.可视进程(Visible process)
3.服务进程(Service process)
4.后台进程(Background process)
5.空进程(Empty process)
  当内存不足的时候会按照5-1的顺序依次回收进程.
  优点:分进程开发能各自独立运行,不会因为一个模块的崩溃导致整个APP的崩溃,还能实现进程间的守护.
  缺点:需要在application里面分开判断初始化各自的配置,多进程不能同时操作本地数据.
  
  Tips:其实进程保活这个东西没有绝对性,各种像素保活,进程互拉,推送唤起,监听各种东西唤醒,都不是绝对
       想要保活还是得白名单

3.一个能实现常在进程的库 marsdaemon

具体用法githup上去看吧

4.android方法数超标65535

解决办法:官方的MultiDex
 1.build文件里面打开  defaultConfig 中的  multiDexEnabled true
      defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 25
        ...
        multiDexEnabled true
    }
 2.添加依赖
dependencies {
  compile 'com.android.support:multidex:x.x.x'
}
3.在自己的application里面初始化
@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

5.GuideActivity的可移动进度点

http://www.jianshu.com/p/340fe841dc61

6.一个懒加载的Fragment

public abstract class LazyFragment extends Fragment {

    protected boolean isInit = false;
    protected boolean isLoad = false;
    private View view;
    public Activity mContext;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(setContentView(), container, false);
        isInit = true;
        mContext=getActivity();
        initView();
        isCanLoadData();
        return view;
    }

    protected abstract void initView();

    /**
     * 视图是否已经对用户可见,系统的方法
     */
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        isCanLoadData();
    }

    /**
     * 是否可以加载数据
     * 可以加载数据的条件:
     * 1.视图已经初始化
     * 2.视图对用户可见
     */
    private void isCanLoadData() {
        if (!isInit) {
            return;
        }

        if (getUserVisibleHint()) {
            if (!isLoad)
            lazyLoad();
            isLoad = true;
        } else {
            if (isLoad) {
                stopLoad();
            }
        }
    }

    /**
     * 视图销毁的时候讲Fragment是否初始化的状态变为false
     */
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        isInit = false;
        isLoad = false;
    }


    /**
     * 设置Fragment要显示的布局
     * @return 布局的layoutId
     */
    protected abstract int setContentView();

    /**
     * 获取设置的布局
     *
     * @return
     */
    protected View getContentView() {
        return view;
    }

    /**
     * 找出对应的控件
     *
     * @param id
     * @param 
     * @return
     */
    protected  T findViewById(int id) {

        return (T) getContentView().findViewById(id);
    }

    /**
     * 当视图初始化并且对用户可见的时候去真正的加载数据
     */
    protected abstract void lazyLoad();

    /**
     * 当视图已经对用户不可见并且加载过数据,如果需要在切换到其他页面时停止加载数据,可以覆写此方法
     */
    protected void stopLoad() {
    }

}

7.一个能完美兼容CoordinatorLayout的刷新控件SwipeToLoadLayout

使用方法,看githup吧

appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                if (verticalOffset >= 0) {
                    mSwipeToLoadLayout.setRefreshEnabled(true);
                } else {
                    mSwipeToLoadLayout.setRefreshEnabled(false);
                }
            }
        });

这东西能让上面的布局拉出之后才下拉刷新

8.一个好用的抓包工具 fiddler

手机抓取网络请求,需要配置代理,怎么配置,百度吧.

9.rxJava的详解

http://gank.io/post/560e15be2dca930e00da1083 扔物线的文章

10.retrofit 2.0的详解

http://wuxiaolong.me/2016/01/15/retrofit/

11.rxJava + retrofit 2.0 + okhttp的网络封装

http://www.jianshu.com/p/bd758f51742e

12.关于4G网络有时候请求不到HTTPS的情况

运营商在4G网络下把域名解析到了他们的缓存节点服务器,然后服务器定期爬主站数据 节省网间结算费 和 完成他们所谓的提速 切换到https之后 他们的缓存服务器没证书或者没有开443端口,导致https无法访问

13.关于notification的一些属性,记不住的时候去翻翻

http://blog.csdn.net/vipzjyno1/article/details/25248021/

14.GreenDao的使用

http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=503338272&idx=1&sn=9932a3761b20528cfeca91b85e1c41ba&chksm=00b781be37c008a8cab95a59d23cfd808bc18de0564f53159fc62e1b0f2b44fe2a26530a8f01&mpshare=1&scene=23&srcid=0316AYFNUfd9B3TJuIRYEsai#rd

本文由本文由Hensen_投稿,鸿洋公众号发布.
Hensen_的博客地址:http://blog.csdn.net/qq_30379689

15.rxJava + retrofit + okhttp的终极网络封装

http://blog.csdn.net/column/details/13297.html

16.项目起始选型

http://www.jianshu.com/p/d9e4ddd1c530

17.一些用到的库

http://www.jianshu.com/p/3442a0b2eee1

18.一些开源库

http://www.oschina.net/translate/30-new-android-libraries-released-in-the-spring-of-2017

19.通知栏的各种问题

http://iluhcm.com/2017/03/12/experience-of-adapting-to-android-notifications/index.html

20.各种截长图

http://www.cnblogs.com/onelikeone/p/7091246.html

你可能感兴趣的:(一些小东西笔记)