自定义博客皮肤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)
  • 收藏
  • 关注

原创 改变Android状态栏字体颜色和实现沉浸式状态栏

目前已知的改变Android状态栏字体颜色的方法只有3种情况下可以实现,分别是手机是MIUI系统、魅族手机以及Android6.0。改变颜色方法分别如下:  * 改变小米的状态栏字体颜色为黑色, 要求MIUI6以上 lightStatusBar为真时表示黑色字体 */ private voi

2016-03-24 18:01:58 5987 1

原创 Serializable序列化以及什么是序列化

在计算机中,一些数据都是以二进制流的形式存在的,比如网络之间数据的通信使用的是二进制流,本地数据保存也是二进制流。这里说个概念,将数据保存到本地磁盘的过程叫“持久化”。但是在java中,一个java类是以一个对象的形式存在的,所以如果要将这个对象保存在本地或者将这个对象与其他进程或者在网络之间通信,就需要将他们转为二进制流,而将一个对象转为二进制的过程就叫做序列化,反之,将一个二进制转

2016-02-28 17:05:41 596

原创 Activity生命周期详解

Actvitiy的生命周期是Android知识点的重中之重,必须要掌握的。什么是生命周期?生命周期在我看来就是一个事物从创建到死亡的一系列过程,比如人有生命周期,电子产品也有生命周期,一个线程也有生命周期。同样Activity也有生命周期。Activity的生命周期如下图所示:我们可以看到它有几个生命周期函数,分别如下含义:onCre

2016-02-28 13:35:11 392

原创 Activity堆栈详解

Activity作为Android四大组件之一,承载着显示界面的重要作用。了解Activity的启动模式也尤为重要。在Android中,Activity一共有四种启动模式,分别为Standard、SingleTop、SingleTask和SingleInstance,设置Activity启动模式的方式是通过Manifest.xml。具体可以查看我的这篇blog:http://blog.

2016-02-27 19:49:08 908

原创 对于OOM的一点注意点

有的时候我们在操作Bitmap的时候会因为java虚拟机分配的内存不足而导致OOM,很多时候我们可以直接捕获这个OOM而不让程序崩溃,但这里需要注意的是,我们需要捕获的是OOM ERROR而不是exception。以内OOM是一种error而不是exception如try{}catch(OutofMemoryError e){e.printStackTrace();}

2016-02-18 16:44:56 371

原创 利用Android Studio搜索在程序中的硬编码字符串(String)

我们经常会因为贪图便利,在程序中直接编写字符串,比如String str = “你好”;但实际上这是很不好的习惯,因为一旦项目变大了,如果想翻译别国语言,这些字符串必然会影响整个程序的翻译工作,并且硬编码会被直接编入class,对程序也会产生不好的作用。正常下,我们应该把string字符串写入到string.xml里面。那么如果你已经在你的程序里这么干了,那么想替换这些字符串要怎么办呢

2016-01-26 13:58:31 5070 2

转载 Android WebView开发需要注意的地方和优化

我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题。就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来。有些是老生常谈,有些则是个人摸索得出解决方法。下面就是整理得到的些干货。1.加快HTML网页装载完成的速度默认情况html代码下载到WebView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,会异

2016-01-21 10:22:57 305

原创 Android中WebView和JavaScript(JS)的互相调用

你在公司里写一个Android App会出现这么个情况:某天,老大突然跟你说,有一个新的需求,界面大概是这样的:……%¥#@。你一听完,头皮发麻,UI界面这么复杂。这时候老大看你难受的样子,突然告诉你说:我们决定用H5页面代替这个界面,用JS来调用客户端的一些逻辑。你一听,很happy,终于不用写这么复杂的界面了。那么WebView如何和JS进行互通呢?下面就告诉如何通过JS让客户端显示一

2016-01-14 16:46:15 789

原创 将Android开源项目通过Gradle发布到bintray/Jcenter

我们经常在github上看到有的项目可以通过gradle的compile一个包的方式将第三方开源项目加入到我们的项目中,那么这是怎么做到的呢?想将自己的开源项目变成这种形式,让别人也可以compile,需要进行以下步骤:一、在项目中保存bintray帐号信息首先,我们需要一个bintray帐号,通过https://bintray.com/ 进行注册。在注册完毕之后,我们需要获得bi

2016-01-13 14:52:34 4609

原创 【Android View】Android中View对触摸事件的处理和传递dispatchTouchEvent、onInterceptTouchEvent

View中存在dispatchTouchEvent、onTouchEvent两个方法。而ViewGroup中则存在dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent三个方法。调用顺序依次为dispatchTouchEvent——》onInterceptTouchEvent——》onTouchEvent在Android的View层级

2016-01-07 22:12:36 3004

原创 Android中Activity的启动模式详解

Android的Activity有四种启动模式,分别是:standardsingleTopsingleTasksingleInstance启动模式需要在AndroidManifest.xml对Activity进行设置如:<activity android:name="Activity Name" android:launchMode="sta

2015-12-21 21:02:46 514

原创 Android播放器开发注意事项

如果开发播放器,记得在有surfaceview的activity界面,即播放器界面加入这句话getWindow().setFormat(PixelFormat.TRANSPARENT);否则surfaceview的创建比较靠前会导致activity闪屏或短暂性黑屏

2015-11-10 09:53:36 264

原创 Android-ListView和ScrollView内嵌套listview的问题

ListView和ScrollView存在一个bug,在这两个组件内再嵌套一个listview,里面的那个listview因为无法确定高度,导致只会显示一条记录,无论你的getcount是几都只会显示一条,有两种做法可以处理,一种是计算内部listview的高度,并指定高度如下代码:private void setListViewHeightBasedOnChildren(List

2015-10-26 11:19:25 237

原创 【Android控件原理】控件View的绘制

在Android中,所有控件都放置在控件树中,并由view_parent负责管理,绘制前,处于控件树根部的控件开始发起丈量,从上至下计算通过measure函数计算各个控件的大小尺寸,计算方式上父控件会计算自己的大小再传递给子控件,子控件通过自己的需要推算出尺寸大小,如果父控件不知道自己的大小,子控件也可以反向推算给父控件。大小确定后,会再从父控件开始依次调用view.layout计算具体的控件位置

2015-06-02 12:01:08 432

原创 【Android系统内的进程】Zygote进程的创建

我们都知道,Android的应用程序都需要在Dalvik虚拟机中才能运行,在Android中,每一个应用程序对应一个进程,一个进程就是一个Dalvik虚拟机。那么有人会想到为什么Google不设置一个全局的Dalvik虚拟机,然后每个应用程序都去使用这个Dalvik虚拟机呢?这样内存内就不需要那么多Dalvik虚拟机,可以减少内存的占用,除去重复的Dalvik。这么说的确没有错,但是我们需要考

2015-05-25 17:31:06 447

空空如也

空空如也

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

TA关注的人

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