Android 内存泄漏优化

01.什么是内存泄漏

  • 一些对象有着有限的声明周期,当这些对象所要做的事情完成了,我们希望它们会被垃圾回收器回收掉。但是如果有一系列对这个对象的引用存在,那么在我们期待这个对象生命周期结束时被垃圾回收器回收的时候,它是不会被回收的。它还会占用内存,这就造成了内存泄露。持续累加,内存很快被耗尽。
  • 比如:当Activity的onDestroy()方法被调用后,Activity以及它涉及到的View和相关的Bitmap都应该被回收掉。但是,如果有一个后台线程持有这个Activity的引用,那么该Activity所占用的内存就不能被回收,这最终将会导致内存耗尽引发OOM而让应用crash掉。
阅读更多

Android 注解详细介绍

01.什么是注解

1.1 注解分类

  • 首先注解分为三类:
    • 标准 Annotation
      • 包括 Override, Deprecated, SuppressWarnings,是java自带的几个注解,他们由编译器来识别,不会进行编译, 不影响代码运行,至于他们的含义不是这篇博客的重点,这里不再讲述。
阅读更多

Android Annotation 注解详细介绍

1.Annotation库的简单介绍

  • 包含一系列有用元注释,帮助开发者在编译期间发现可能存在的bug
  • 是属于Support Lib其中之一,独立jar包
  • 通过注释来完善自身代码质量
  • 官方文档:
    • AndroidAnnotations是一个能让你进行快速开发的开源框架,它让你关注真正重要的地方,它可以简化你的代码,并且有利于你后期的维护
  • 库的特点
阅读更多

Android Retrofit 基本使用和源码解析

1.关于Retrofit基本介绍

  • Retrofit是Square 公司开发的一款正对Android 网络请求的框架。底层基于OkHttp 实现,OkHttp 已经得到了google 官方的认可。
  • Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,如果看源码会发现其实本质上是OkHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底层,其将请求返回JavaBean,对网络认证REST API进行了很友好的支持。使用Retrofit将会极大的提高我们应用的网络体验。
阅读更多

Android WebView 源码分析

2.loadurl,LoadData ,loadDataWithBaseURL分析

2.1 loadurl

1
2
LoadUrl比较费流量,而且加载起来有点慢
使用loadUrl()加载一个Url地址
阅读更多

Android WebView 防坑总结

02 后台无法释放js导致发热耗电

  • 在有些手机你如果webview加载的html里,有一些js一直在执行比如动画之类的东西,如果此刻webview 挂在了后台这些资源是不会被释放用户也无法感知。
  • 导致一直占有cpu 耗电特别快,所以如果遇到这种情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
在onStop里面设置setJavaScriptEnabled(false);
在onResume里面设置setJavaScriptEnabled(true)。
@Override
protected void onResume() {
super.onResume();
if (mWebView != null) {
mWebView.getSettings().setJavaScriptEnabled(true);
}

}
@Override
protected void onStop() {
super.onStop();
if (mWebView != null) {
mWebView.getSettings().setJavaScriptEnabled(false);
}
}
阅读更多

Android WebView 和 js 交互

1.WebView和Js交互方式

1.1 Android去调用JS的代码方式

  • 对于android调用JS代码的方法有2种:

    • 第一种方式已经不推荐使用了,第二种方式不仅更方便,也提供了结果的回调,但仅支持API 19以后的系统。
阅读更多

Android WebView 基础使用

1.关于WebView的使用优点

  • 可以直接显示和渲染web页面,直接显示网页
  • webview可以直接用html文件(网络上或本地assets中)作布局
  • 和JavaScript交互调用

2.WebView最简单的使用方法

阅读更多

Android DecorView 介绍

01.什么是DecorView

  • DecorView是FrameLayout的子类,它可以被认为是Android视图树的根节点视图。

    • DecorView作为顶级View,一般情况下它内部包含一个竖直方向的LinearLayout,在这个LinearLayout里面有上下三个部分,上面是个ViewStub,延迟加载的视图(应该是设置ActionBar,根据Theme设置),中间的是标题栏(根据Theme设置,有的布局没有),下面的是内容栏。
阅读更多

Android onAttachedToWindow 和 onDetachedFromWindow

01.这两个方法的作用分析

1.1 方法说明

  • 首先View没有明显的生命周期,onDetachedFromWindow()与onAttachedToWindow()方法相对应。
    • ViewGroup先是调用自己的onAttachedToWindow()方法,再调用其每个child的onAttachedToWindow()方法,这样此方法就在整个view树中遍布开了,而visibility并不会对这个方法产生影响。
阅读更多