自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

网鱼的栈

恐惧源于无知

  • 博客(15)
  • 收藏
  • 关注

原创 Fragment回退栈管理

一般操作一个fragment是使用fragmentTransaction,fragmentTransaction由fragmentManager获取。manager = getSupportFragmentManager();FragmentTransaction transaction = manager.beginTransaction();实际上manager是个F

2017-06-29 20:31:18 755

原创 Android开发中,取消打包某个jar包到APK中

开发中会遇到,引入一个jar包,只想编译的时候能通过,打包APK时不需要把该jar一起打包进去,因为可能在别的地方也有这个jar包,比如在插件开发过程中。宿主工程host里面使用了这个jar包,插件工程里面也需要用到这个jar包,而插件最终需要在宿主中使用,那么如果插件打包apk的时候把这个jar包打进去了,那么宿主运行插件apk的时候就会在内存中同时存在重复的类的情况,这样就会发生类链接错误。

2017-06-27 21:08:31 3192 1

原创 原型模式、对象克隆(深复制、浅复制)

对象克隆关于java克隆,感谢这位博主的总结,相当到位:http://www.cnblogs.com/Qian123/p/5710533.html#commentform对象的克隆需要在该对象的类中实现Cloneable这个标记接口(类似的标记接口有Serializable,没有任何方法),并复写clone方法,该方法是Object类提供的native方法,并且是protected修饰的,

2017-06-27 16:04:05 1281

原创 插件APK中的activity显示的视图,其实是附着在宿主Activity上的

任大大的这篇文章描述了一个动态加载插件apk视图的步骤:http://blog.csdn.net/singwhatiwanna/article/details/22597587其中学习到了不少知识,整理一下。一个重要的问题就是,插件中的activity加载出来的视图其实是附着在宿主activity的视图层次上的,因为加载视图的时候使用的context上下文就是宿主的contex

2017-06-26 12:01:44 1159

原创 Android studio导出jar包,作为插件化jar包的步骤

1、一般会在主工程里面新增一个module,类型为Android Library,命名为dexlibs2、该module里面编写我们的插件内容,比如:3、选择build,make该lib,这样会在该module下的build-》intermediates-》bundles-》debug下会生成一个classes.jar文件。该文件就是工程编译出来的可用的jar包。但是该jar包

2017-06-24 13:04:07 3720 1

原创 跨进程通信Binder执行耗时任务

在Binder机制中有客户端和服务端。通过定义AIDL文件,客户端可以拿到服务端的IBinder接口,从而直接调用服务端的AIDL方法;而服务端同样可以通过回调的方式,拿到客户端的AIDL方法进行回调。所有的AIDL方法都是在服务端的Binder线程池中执行的,也就是说,每一个AIDL方法执行的时候都会在一个服务线程中执行。比如,客户端(Activity)通过ServiceConnecti

2017-06-21 11:08:08 3469

转载 类加载机制ClassLoader

原文出处:https://zhuanlan.zhihu.com/p/20524252类加载器ClassLoader早期使用过Eclipse等Java编写的软件的同学可能比较熟悉,Eclipse可以加载许多第三方的插件(或者叫扩展),这就是动态加载。这些插件大多是一些Jar包,而使用插件其实就是动态加载Jar包里的Class进行工作。这其实非常好理解,Java代码都是写在Class里面的,程

2017-06-20 21:33:50 338

原创 在子线程创建并显示一个Toast

一般我们要显示一个Toast的时候,默认情况下都是在主线程中有如下做法:Toast.makeText(mContext, "我是一个Toast", Toast.LENGTH_LONG).show();我们看看makeText里面干了什么:public static Toast makeText(Context context, CharSequence text, @Duration

2017-06-20 18:00:14 584

原创 RecyclerView添加Header

添加header的思路就是通过adapter的itemType来加载不同的布局。又根据LayoutManager有不同的处理方式。1、线性布局LinearLayoutManager简单,只需要根据不同的itemType处理不同的ViewHolder就能实现。设置布局管理器:RecyclerView.LayoutManager manager = new LinearLayout

2017-06-20 12:56:41 620

转载 JVM运行时数据区

绝大多数情况下对象及其属性域都保存在堆内存里面;方法的参数,局部变量(引用以及6中基本类型)保存在栈里面。

2017-06-19 16:43:03 286

原创 String对象不可改变的特性

String对象一旦赋值就不可改变。原因是不管使用“+”操作符连接成新的字符串还是使用s.concat()拼接新的字符串,最终都会生成一个新的对象,而这个原来的s变量指向了新的对象。1. 声明String对象[java] view plain copyprint?String s = "abcd";  String s = "abcd";

2017-06-19 16:26:34 435

原创 异常类层次结构

Throwable类|------Error类:一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠 | |         |               程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。|         |-------VirtualMachineError |         |   

2017-06-19 16:17:31 659

原创 从浏览器打开一个本地应用的回退栈问题

1、首先,先理一下回退栈的问题。开机启动后,Home(Launcher)所在的Activity在整个回退栈的栈底。从Launcher上的图标点击进入一个应用(Activity)时,默认在启动整个Activity的Intent的flag里面加入了NEW_TASK标记,也就是说从launcher启动的Activity默认会在一个新的Task里面。比如我们启动了一个应用,AB

2017-06-13 19:00:14 1485

原创 Android面试遇到的小知识

Intent传递数据时,可接受的数据类型是:Serializable、CharSequence、Parcelable、Bundle、Bitmap一个组件可以有多个intent过滤器、一个过滤器里面智能有一个action,隐式的intent,必须要在过滤器中指定CATEGORY_DEFAULT,原因是:每一个通过 startActivity() 方法发出的隐式 Intent 都至少有一个 cat

2017-06-06 18:37:23 372

原创 自定义view中onMeasure、onLayout、onDraw、onFinishInflate、onSizeChanged方法调用时机

一般自定义view或viewGroup基本上都会去实现onMeasure、onLayout、onDraw方法,还有另外两个方法是onFinishInflate和onSizeChanged。onFinishInflate方法只有在布局文件中加载view实例会回调,如果直接new一个view的话是不会回调的。比如一个ViewGroup,只有它和它的子view完全被加载实例化了之后才回去

2017-06-06 18:36:00 6744 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除