![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android基础
最爱吃豆腐
奋斗啊,努力啊
展开
-
从打包SDK的层面解决:Robolectric出现的java.lang.VerifyError
在robolectroc出现了java.lang.VerifyErrorjava.lang.VerifyError: Expecting a stackmap frame at branch target 37Exception Details: Location: 略 @3: ifnonnull Reason: Expected stackmap frame a...原创 2019-10-18 10:46:15 · 10130 阅读 · 0 评论 -
robolectric使用中出现java.lang.VerifyError
在robolectric的使用中出现了java.lang.VerifyError: Expecting a stackmap frame at branch target 37Exception Details: Location: 略 @3: ifnonnull Reason: Expected stackmap frame at this location. ...原创 2019-10-14 19:15:01 · 2992 阅读 · 1 评论 -
使用Fileprovide 出现的问题
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.content.res.XmlResourceParser android.content.pm.PackageItemInfo.loadXmlMetaData(android.content.pm.PackageManager,原创 2018-01-05 10:30:33 · 818 阅读 · 0 评论 -
当我们使用OkHttpClient 的时候,增加自定InterCeptor 拦截器的时候需要注意
当我们使用OKHttp 进行网络请求的时候,需要增加自定义的Interceptor,用来进行网络请求公共的操作,如何Log日志,或者网络加密,这里会出现很多问题以下是配合Retrofit和增加OKhttp的例子:HouseApi provideHouseApi() { HttpLoggingInterceptor httpLoggingInterceptor = new HttpLo原创 2018-03-07 11:19:54 · 11831 阅读 · 0 评论 -
OKhttp 笔记
原博文来源一.okhttp 的基本使用:get/post 请求文件上传/下载加载图片支持请求回调,直接返回对象/集合支持session的保存二.简单Get使用 //最简单的get请求 @Test public void okhttpGet() { OkHttpClient okHttpClient = new O...原创 2018-05-28 11:20:16 · 17868 阅读 · 0 评论 -
使用Retrofit 的特性#addConverterFactory(..),将服务器的数据做统一的处理
Q: 当我们的服务器的json数据形如下面:{ code:0,//这里的数字代表了服务器返回的不同状况,通常只有1才是正确的 msg:"提示信息",//这里代表了返回数据的提示信息 data:<obj>|<array> //这里真正需要的数据}可是很多时候,我们队数据的处理是一样的,只有code==1的时候才能需要解析da...原创 2018-06-11 15:26:52 · 17008 阅读 · 0 评论 -
Android 五种退出应用的方法
一.使用RxBus监听: 原理:在BaseActivity 中都初始化RxBus,同时监听某种事件,当接收到这个事件的时候,就finish();————>其实就是类似广播监听事件代码:ublic class BaseActivity3 extends AppCompatActivity { Subscription mSubscription; @Ov...原创 2018-05-29 16:00:18 · 1585 阅读 · 0 评论 -
Gson 中注解标签的JsonAdapter的时候
我们请求后台获得json的时候,往往不能获得我们比较喜欢的数据类型.例如:时间传给字符串,boolean 传给int类型:如图:{ time:"20180524", isLoveMe:1//1代表true,0:代表false}Q:这个时候我们怎么方便的直接把time编程date,isLoveMe编程Boolean呢?A:这个时候我们使用Gson...原创 2018-05-24 18:25:00 · 3290 阅读 · 0 评论 -
记一次Android面试题目-关于OverDraw:Optimizing Layouts in Android to reduce overDraw
被面试问到”OverDraw”和Android 中UI 的卡顿,但是我没有回答出来,遂开始寻找答案。感叹以前开发实在不够认真,Overdraw与卡顿这么影响使用的问题怎么能现在出在乎呢? 所以写下今天的博客提醒自己:要认真!参考1(需要科学上wan):Optimizing Layout in Android-Reducing OverDraw 参考2.Android性能优化之如何避...原创 2018-06-21 09:55:58 · 2040 阅读 · 0 评论 -
如何减少APK 包的大小
一. gradle 中设置 1.1 开启minifyEnabled : 开启混淆,删除没用的java文件1.2 开启shrinkResources : 去除无用资源1.3 resConfig “zh”删除无用的语言资源二.对图片的处理 2.1 使用tinpping 有损压缩,可以对png图片压缩2.2 对于非透明的大图,png->jpp2.3 使用webp 格式...原创 2018-05-31 13:49:08 · 694 阅读 · 0 评论 -
Android的内存泄漏--(1)
Q:什么是内存泄漏 A:内存不在GC 掌控之内:当一个对象已经不需要再使用了.本该被回收,而又另外一个正在使用的对象引用,导致这个对象不能被回收.导致了本该回收的对象不能被回收而停留在堆内存中,就产生了内存泄漏. Q:Android 什么时候出现过? A:Handler,广播接收者unregist(),线程持有Activity,了解内存分配的集中策略1....原创 2018-06-09 13:59:02 · 596 阅读 · 0 评论 -
Android中启动一个Service和广播接受者BroadcastReceiver,用于随时观察网络情况
在android中我们要随时观察网络的连接情况,可以用一下的方法时刻监测原理使用服务,在服务内部的oncreat方法类启动一个BroadcastReceiver,通过注册用于观察网络情况的接受者,从而能够时刻观察网络的情况:知识点: 1.启动服务注册接受者 2.注册具备观察系统内部网络变化情况的接受者:intentFilter.addAction(ConnectivityMana原创 2017-03-28 16:58:28 · 19747 阅读 · 0 评论 -
软件更新后自动打开app
/** * 软件卸载后自动自动打开自身的app * 用于更新APP使用 */ public class PkInstallReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) { if (intent.getAction().equal原创 2017-02-16 15:09:36 · 765 阅读 · 0 评论 -
自定义dialog实例子
\ 如图:点击某一个按钮在下方显示一个dialog,外形可以自定义,item可以自定义,点击效果可以自定义;自定义的dialog:public class MoreTopicDialog extends Dialog { public MoreTopicDialog(Activity context) { super(context); } public Mo原创 2016-11-29 09:09:44 · 431 阅读 · 0 评论 -
Android水平ProgressBar
如何自定义Android 水平progressbar呢? 首先在drawable目录下建立一个layouer-list文件<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@androi原创 2016-11-29 13:57:50 · 1236 阅读 · 0 评论 -
Android直接复制使用的工具类
1.打印LogUItil/** * Log统一管理类 * * * */ public class LogUtils { private LogUtils() { /* cannot be instantiated */ throw new UnsupportedOperationException("ca原创 2016-11-13 18:22:52 · 1373 阅读 · 0 评论 -
Android 使用头部设置横向滑动的GridView
如图: 总布局最外层是一个第三方的RecyclerView <com.malinskiy.superrecyclerview.SuperRecyclerView android:id="@+id/super_recycle_view" android:layout_width="match_parent" android:layout_heig原创 2016-11-21 09:27:18 · 13780 阅读 · 0 评论 -
固定为正方形的容器
public class SquareLayout extends RelativeLayout { public SquareLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); }public SquareLayout(Cont原创 2016-12-03 14:41:51 · 9478 阅读 · 0 评论 -
Android 判断虚拟键盘的弹出状态和在RecyclerView加载更多的应用
1.通过布局的根目录,判断虚拟键盘的弹出与否: ViewTreeObserver viewTreeObserver = rootView.getViewTreeObserver(); viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {原创 2016-11-23 16:12:59 · 1446 阅读 · 0 评论 -
Android 拍照,选取照片,截取,显示
一.拍照与选取照片使用方法例子/**@*/ ImagePickerUtils.showImagePicker(this, viewModel.getAvatarPath(), 1, new ArrayList<PhotoInfo>());工具类public class ImagePickerUtils { public final static int REQUEST_CODE_PICK原创 2016-11-24 09:27:04 · 394 阅读 · 0 评论 -
android选取照片后做处理
1. 携带参数选取照片,调用下列方法可以进入照片的处理 public static void takePictureFromAlbum(Activity activity, int maxCount, List<PhotoInfo> selectPhotoList) { Intent imageIntent = new Intent(activity, SelectPhotoA原创 2016-11-24 09:34:51 · 9035 阅读 · 0 评论 -
ButterKnife Zelezny 抛出 ArrayIndexOutOfBoundsException
一般就是id的命名的时候_xx_xx_xx 有下划线引起的原创 2016-11-24 14:56:35 · 316 阅读 · 0 评论 -
com.android.sdklib.repository.FullRevision
出现这个错误是在android2.0.0不支持Jake大神的SDKManage 只需要把这个插件注释掉就行了在Projectbuildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0'原创 2016-12-15 11:23:30 · 298 阅读 · 0 评论 -
Java代码性能优化
目的减少代码的体积提过代码运行的效率具体细节:尽量指定类、方法的final修饰符 带有final修饰符的类不可派生的.在Java核心API中就用Final.当指定一个类是final的,那么所有的方法都是final. * 此举能够使性能平均提高50% *尽可能重用对象,尽可能不new尽可能使用局部变量及时关闭流尽可能减少变量的重复计算 如for (int i = 0; i <原创 2016-11-07 11:34:17 · 1021 阅读 · 0 评论