现象描述 Android 7.0以前的版本 Uri photoUri = Uri.fromFile(tempFile); Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(
Cookie是服务器为客户端分配的一个键值对的表,和Session不同的是Cookie存储在客户端。服务器通过Response.addCookie()为客户端添加Cookie数据,再从Request.getCookie()中获取数据。 在Android开发中,有时我们需要调用HTTP的接口登录帐号,
在使用Java虚拟机时,我们经常自定义继承自ClassLoader的类加载器。然后通过defineClass方法来从一个二进制流中加载Class。而在Android中我们无法这么使用,Android中ClassLoader的defineClass方法具体是调用VMClassLoader的define
Android原生WebView截图,支持Android 5.0及以上,支持缩放 /** * 缩放图 * @param context * @param webView */ public static void captureScaleWebViewLollipop(final Cont
Android原生WebView截图,以Android 5.0为版本分界线,截图采用不同的处理方式。 初始化WebView自适应显示 /** * 自适应 * @param webView */ public static void initWebViewWithOverview(WebVie
GitHub:https://github.com/crazycodeboy/TakePhoto 发起TakePhoto //多图 takePhoto.onPickMultiple(limit); takePhoto.onPickMultipleWithCrop(limit, getCropOpt
使用ViewPager+Fragment组合加载数据,由于ViewPager的内部机制所限制,会默认至少预加载一个。但有时我们必须禁止预加载,比如第1个和第2个页面可以任意浏览,第3个页面需要登录才能浏览,此时会导致在切换到第2个页面时,便跳转到登录页面。 ViewPager.setOffscree
XML布局 android:imeOptions="actionSearch" android:singleLine="true" //必需,否则设置actionSearch不生效 <me.yezhou.lib.ui_widget.common.Th
引用多个library时经常会遇到Multiple dex files define错误 Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.trans
原因:OkHttp请求回调中response.body().string()只能有效调用一次 在调用response.body().string()方法之后,response中的流就会被关闭,如果我们需要创建出一个新的response给应用层处理。 @Override public Respons
Dexter Github:https://github.com/Karumi/Dexter 依赖引用 implementation 'com.karumi:dexter:5.0.0' 封装调用 DexterPermissionHelper.requestPermissions
ButterKnife attribute value must be constant 在Project级的build.gradle中 buildscript { repositories { google() jcenter() mave
卡顿罪魁祸首 UI卡顿就是Android在界面渲染时丢帧。 Android系统要求每一帧都要在 16ms 内绘制完成,在这个时间内界面就是流畅的(能够达到流畅的画面所需要的60fps) 丢帧的各种原因: layout 太过复杂,层次过多,UI 上有层叠太多的绘制单元,过度绘制 CPU 或者 GP
ANR超时时间在ActivityManagerService.java文件中进行了定义 Broadcast超时时间为10秒 // How long we allow a receiver to run before giving up on it. static final int BROADCA
Android序列化方案Parcelable,相比Serializable更快,效率更高,占用内存更少。 Boolean类型 //write dest.writeByte((byte) (isDefault ? 1: 0)); //read isDefault = source.readByte