自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lerch的博客

无畏,无所谓。

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

原创 Android沉浸式状态栏实现及处理键盘弹出

Android沉浸式状态栏实现及处理键盘弹出项目中遇到的,虽然后来没按这种方式解决,但还是记下,感觉后面还会碰到这个坑~传送门:http://ddrv.cn/a/223537

2020-10-21 16:18:01 397

转载 Fragment中add、attach、detach、remove、hide、show、replace等方法的区别与使用

使用add()加入fragment时将触发onAttach(),使用attach()不会触发onAttach()使用replace()替换后会将之前的fragment的view从viewtree中删除触发顺序:detach()->onPause()->onStop()->onDestroyView()attach()->onCreateView()->...

2018-08-20 15:42:05 5605

转载 Android ProGuard 混淆

现在写的app 基本都是经过混淆了的,如果不混淆, 发布出去,别人一反编译 就可以直接看你的源码了ok 来说一下混淆吧:我现在用的AndroidStudio , 只需要在 build.grade 的配置文件中配置如下即可: [html] view plain copybuildTypes {      debug {          versionNameSuffix ".dev"      }...

2018-03-27 15:07:00 177

转载 Android下载文件合法性完整性校验

转载自:http://blog.csdn.net/l2show/article/details/48182367一.概述       因为之前项目有动态热修复的功能,在修复的过程中会从服务器上下载一个新的dex文件来替换老的dex文件,所以就牵扯到文件身份效验的问题.通常接口会下发一个MD5值,只是一个MD5值的话就只能做一个完整性效验,并不能确定文件的合法性,如果攻击者模拟接

2018-01-04 11:30:35 7667

转载 坑爹的Android Ble问题记录日志

开发Ble(公司项目,防丢器)已经有一段时间,由于是第一次接触Ble而网上资料又不多,且android平台自身的差异性,遇到了很多问题。为了将来方便查阅,在此做下记录。1.中兴手机,蓝牙手动断开后,无法再次链接问题。(可能别的手机也存在类似问题)解决办法: 在连接gatt之前,对bluetoothadapter进行一次scan 顺利解决此问题。2.Gatt链接不稳定(在部分手机上出

2017-12-05 14:40:06 309

转载 UML类图与类的关系详解

UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation)

2017-10-24 16:51:57 187

转载 接口和抽象类的区别

接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.

2017-09-20 17:04:46 150

转载 Android Service ANR

1.当在Activity 的onCreate方法中启动一个服务,服务里面是一个死循环。=》主界面无法绘出,点击手机键盘的返回按钮会报ANR错误。2.当在Activity 的onCreate方法中启动一个线程,线程里面启动一个服务,服务里面是一个死循环。=》主界面可以绘出 但会报ANR错误。3.当给按钮设置了一个点击事件,单击方法中启动了一个线程,线程内启动了一个服务,服务里面是一个

2017-09-18 10:26:36 3793

转载 Framework基础介绍

简介之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework框架层了。记录1、下载源码,目录如下:2、Android系统的层次如下:3、项目目录简单分析如下:4、telphony目录文件描述CellI

2017-09-15 16:12:31 1316

转载 String SringBuffer StringBuilder区别

最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下  1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String

2017-09-13 18:25:23 1066

转载 Java程序执行顺序

Java中main方法,静态,非静态的执行顺序详解  Java程序运行时,第一件事情就是试图访问main方法,因为main相等于程序的入口,如果没有main方法,程序将无法启动,main方法更是占一个独立的线程,找到main方法后,是不是就会执行mian方法块里的第一句话呢?答案是不一定 看看下面两种最常见的情况:  第一种情况:    main方法在一个具有其他方

2017-09-08 16:47:37 282

转载 基于Android Studio的Android内存泄漏检测方法

自从Google在2013年发布了Android Studio后,Android Studio凭借着自己良好的内存优化,酷炫的UI主题,强大的自动补全提示以及Gradle的编译支持正逐步取代Eclipse,成为主流的Android开发IDE。Android Studio在为我们提供了良好的编码体验的同时,也提供了许多对App性能分析的工具,让开发者可以更方便分析App性能。Google在IO大会上

2017-09-08 15:47:58 217

转载 Android应用程序的Activity启动过程

无论是通过点击应用程序图标来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都要借助于应用程序框架层的ActivityManagerService服务进程。在Android应用程序框架层中,ActivityManagerService是一个非常重要的接口,它不但负责启动Activity和Service,还负责管理Activity和Se

2017-09-08 14:30:13 198

转载 Android面试-2017

从零开始-Android当我们的java基础达标之后,我们就可以在地基上添砖加瓦,打造属于自己的android大厦 下图是我对Android的一点总结 Android系统相关Android四大组件Android数据存储Android线程相关Android网络编程Android自定义ViewAndroid动画相关Android事

2017-09-07 18:05:59 367

转载 Android中使用sqlite

现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧。对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取。下面就向大家介绍一下SQLite常用的操作方法,为了方便

2017-09-07 17:27:48 384

转载 Android广播细解

BroadcastReceiver,作为一个广播接收者,因为android组件之间消息的传递基于intent,所以广播接收者想要接收什么类型的广播,将receiver标签下的intent-filter标签下的action标签的值置为那个广播类型即可,如[html] view plain copyreceiver android:name=".In

2017-09-07 17:18:37 255

转载 http详解

HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信

2017-09-07 16:48:29 240

转载 详解Activity

Activity是什么?  我们都知道android中有四大组件(Activity 活动,Service 服务,Content Provider 内容提供者,BroadcastReceiver 广播接收器),Activity是我们用的最多也是最基本的组件,因为应用的所有操作都与用户相关,Activity 提供窗口来和用户进行交互。   官方文档这么说:   An act

2017-09-07 13:57:23 311

转载 Activity生命周期详解

我们来看一下这一张经典的生命周期流程图:相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程。1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。2.当前Activity被其他Activity覆盖其上或被锁屏:系统会

2017-09-07 13:50:18 2729

转载 Android系统目录结构

1.Android系统架构Android系统架构分为五层,从上到下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层。 应用层系统内置的应用程序以及非系统级的应用程序都是属于应用层。负责与用户进行直接交互,通常都是用Java进行开发的。应用框架层(Java Framework)应用框架层为开发人员提供了可以开发应用程序所需要的API,我

2017-09-06 18:26:25 280

转载 Android快速开发框架

本文系多方综合与转载整合,意在Android开发中能够知道和使用一些好用的第三方支持,省去自己的很多时间,下面涉及到的多为经过历史兴衰与检验的,江山代有人才出一代更比一代强,有些已经被更新更好用的所取代,但也很多地方仍可圈可点不乏参考,有些依然经典,整理出来请君一参.欢迎大家的指正,补充与交流.1、AndBase框架   项目地址: https://code.jd.com/zhao

2017-09-06 18:11:31 135

转载 Android系统修改汇总(MTK)

以下都是基于Android 6.0 的代码去修改的!!!二十一、修改浏览器默认地址(Browser)diff --git a/res/values/strings.xml b/res/values/strings.xmlold mode 100644new mode 100755index bba4dbe..28a3628--- a/

2017-09-06 18:01:59 2082

转载 Java并发

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来

2017-09-06 15:18:35 173

转载 深入理解Java线程池

深入理解Java之线程池原作者:海子   出处:http://www.cnblogs.com/dolphin0520/    本文归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。       在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题

2017-09-06 11:35:02 139

转载 JAVA多线程

一、为什么使用多线程1. 并发与并行    我们知道,在单核机器上,“多进程”并不是真正的多个进程在同时执行,而是通过CPU时间分片,操作系统快速在进程间切换而模拟出来的多进程。我们通常把这种情况成为并发,也就是多个进程的运行行为是“一并发生”的,但不是同时执行的,因为CPU核数的限制(PC和通用寄存器只有一套,严格来说在同一时刻只能存在一个进程的上下文)。    现在,我

2017-09-06 11:32:53 165

原创 SeekBar动态更新Thumb图片

Seekbar提供有setThumb方法,但是单纯用这个方法是无法实现更新Thumb图片的。参照SeekBar父类AbsSeekBar的源码,了解到setThumb仅仅是把AbsSeekBar的mThumb指向新的Drawable,并没有对新的Thumb的Bounds进行设定,但是在draw时,canvas要根据图像的bounds去画,这就出现了问题,输出了一下bounds的Log,发现新的Thu

2016-12-28 19:37:14 3188

转载 Handler机制详解

为了避免ANR,我们会通常把 耗时操作放在子线程里面去执行,因为子线程不能更新UI,所以当子线程需要更新的UI的时候就需要借助到安卓的消息机制,也就是Handler机制了。注意:在安卓的世界里面,当 子线程 在执行耗时操作的时候,不是说你的主线程就阻塞在那里等待子线程的完成——也不是调用 Thread.wait()或是Thread.sleep()。安卓采取的方法是,主线程应该为子线程提供一

2016-12-07 10:01:00 361

原创 Acitivity启动模式

Android有四种启动模式:standard、singleTop、singleTask、singleInstance。1、standard(拿来主义)Android默认启动模式,每次启动一个Activity都会创建一个新的实例,无论这个实例是否已经存在,然后将该实例加入到启动他的任务栈中,会走Acitivity的各个生命周期,是一种典型的多实例实现。注意:当用ApplicationC

2016-12-05 15:05:13 365

转载 Android AsyncTask原理-源码层分析

1、概述相信大家对AsyncTask都不陌生,对于执行耗时任务,然后更新UI是一把利器,当然也是替代Thread + Handler 的一种方式。如果你对Handler机制还不了解,请看:Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系。2、简单的例子相信大家都写过这样的代码:[java] view plain

2016-12-03 15:00:19 201

原创 Android项目JNI层C/C++文件中添加LOG信息

第一步:在项目的mk文件中加入:LOCAL——LDLIBS:=-llog;第二步:在要添加LOG的cpp文件中引入一个头文件和添加一个定义:#include#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__);第三步:就可以添加LOG啦,在添加位置:LOGD(">xxa

2016-12-02 16:28:17 728

转载 强引用、软引用、弱引用、虚引用

强引用、软引用、弱引用、虚引用的介绍

2016-12-02 14:41:03 249

转载 Glide和Picasso

Android图片加载方式Glide和Picasso介绍与对比

2016-12-02 14:35:36 237

转载 Fresco-Facebook介绍

在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。如果手机的屏幕是480*800,那么一张屏幕大小的图片就要占用1.5M的内存。手机的内存通常很小,特别是Android设备还要给各个应用分配内存。在某些设备上,分给Facebook Ap

2016-12-02 14:32:17 543

转载 缓存淘汰算法

1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3. 当链

2016-12-01 15:08:21 1507

原创 Android mmm 编译时cannot find symbol

今天简单的实现换settings里的第三方应用图标,但是蛋疼的是我明明已经把图片拷到目录下了,但编译Settings的时候总是出现cannot find symbol,(用的是mmm编译)。郁闷了好久,反复试了都是用样的结果。后来在开源中国里看到一个帖子,说要重新编译一下framwork里的res,果然可以,问题解决。原因是R文件是由aapt工具生成的,要确保 com.android.system

2016-05-10 17:22:09 1151

原创 Android线程开启与关闭

前几天改一个小问题用到了线程,涉及到线程就要考虑线程的开启和关闭。如果你想着不用的时候直接拿线程对象的Destroy方法就太天真了,相信你自己这样做都感到不敢相信。其实你的这种感觉是对的,Destroy方法的确是不能用的。也去百度了一下,见到了两种方法:第一种:用HandlerThread;HandlerThread thread = new HandlerThread("MyHand

2016-05-09 10:42:20 3878

空空如也

空空如也

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

TA关注的人

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