自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

【Mr._W聊编程】

    Write the Code. ** the World.

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

原创 Android AMS(ATMS)的应用启动流程解析

前言在Android Q中,activity的调度和管理已经从AMS移到了ActivityTaskManagerService中(这里简称ATMS)简介Launcher点击应用图标:这个过程是Launcher进程中进行的,去启动应用的第一个activity。 通过binder进入ATMS:在ATMS中,为应用的第一个activity创建了ActivityRecord,找到其ActivityStack,将ActivityRecord插入到所在的TaskRecord的合适位置。最后执行到Activ

2021-04-22 15:18:40 2697

原创 经典排序算法+动图演示

前言十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度:.

2021-03-18 11:32:05 167

原创 Android 事件分发机制

前言在Android 开发中事件分发是比较重要的,理解事件分发机制对日常开发中组件的事件定义、层级分发处理等尤为重要 下面就是事件分发的流程图: 仔细看的话,图分为3层,从上往下依次是Activity、ViewGroup、View 事件从左上角那个白色箭头开始,由Activity的dispatchTouchEvent做分发 箭头的上面字代表方法返回值,(return true、return false、return super.xxxxx(),super ...

2021-03-05 10:17:03 281 1

原创 Android Binder 机制

前言Binder做为Android中核心机制,对于理解Android系统是必不可少的,相信看完这篇文章大家也可以搞懂binder机制。1、Binder简介先理解一个概念IPC:Inter-process communication ,进程间通信,已有的进程间通信如下几种:1、Files 文件系统(包括内存映射)2、Sockets3、Pipes 管道4、Intents, ContentProviders, Messenger5、BinderAndroid系统中的Binder框架图如下

2021-03-04 14:46:24 203 1

原创 Android App优化之路一

Android性能优化主要从卡顿、内存泄漏和崩溃、代码质量和逻辑、安装包过大四方面入手。在使用时避免出现卡顿,响应速度快,减少用户等待的时间,满足用户期望;同时减低 crash 率和 ANR 率,不要在用户使用过程中崩溃和无响应;节省流量和耗电,减少用户使用成本,避免使用时导致手机发烫;安装包小可以降低用户的安装成本。1、卡顿优化Android 系统每隔 16ms 发出 VSYNC 信号,...

2020-04-10 15:47:52 362

原创 APP Crash全局捕捉——UncaughtException

猿猿们都知道日常码bug都会使用 try - catch拦截异常,主动try-catch是可以预防异常闪退。但是本着“辛辛苦苦敲的bug凭什么要改!”的宗旨,日常闪退该怎么办,猿猿们别慌,一招捕捉全局crash,也可用作埋点cras分析或者缓存io到file作为log,据我所知像友盟这些第三方sdk就嵌套了crash分析,长话短说,直接上码吧public class CrashCat...

2020-03-31 15:46:48 244

原创 解决webview出现错误net::err_unknown_url_scheme 的问题

产生原因:webview重定向,其定义没有明确的官方解释,发生的原因是请求的链接(url)在加载完成后发生了变化 (eg.比如你的代码中设置webview加载的是网页A,打开后发现加载的是网页B); 关于net::ERR_UNKNOWN_URL_SCHEME(如下图所示),因为webview只能识别http和https协议,遇到图中这种"wvhzpj://"开头的自定义协议时就无法识别,便会提...

2020-03-02 10:20:49 39928 4

原创 Android开发之APK瘦身之路

啥也不说了,直接进入主题吧1. 结构分析首先上传一张瘦身前通过Analyze app分析出来的图片(打开方式:Android Studio下 ——> Build——> Analyze app):APK包结构如下:1.lib/:包含特定于处理器软件层的编译代码。该目录包含了每种平台的子目录,像armeabi,armeabi-v7a, arm6...

2019-11-27 11:42:46 218

原创 ListView嵌套EditText的焦点问题

踩过坑,总结一下1、当Item中有button或者checkbox的控件,控件初始化会抢夺焦点      在edittext或者抢占焦点的button或者checkbox中加上      android:focusable="false"2、软键盘弹出导致listview重绘,而导致edittext失去焦点    在ListView中加入android:descendantFoc...

2018-11-22 11:59:36 803 1

原创 Android开发中常用到的工具类

常用工具类    /**     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)     */    public static int dip2px(Context context, float dpValue) {            final float scale = context.getResources().getDisplayMetrics().density...

2018-04-11 16:25:07 300

原创 详述Android马甲包

一、何为马甲、作用 简单的说,一句话就是:APP的小号。 区别: 1. 马甲icon和名字不同,内容和主号基本一样。2. 有的是针对不同的目标用户,马甲采用主App的部分功能,同时具特别的功能和内容。3. 不想让大家知道主App...

2018-04-11 16:17:05 9365

原创 Java 中日期的几种常见操作 —— 取值、转换、加减、比较

Java 中日期的几种常见操作 —— 取值、转换、加减、比较Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿。当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论。1. 日期取值在旧版本 JDK 的时代,有不少代码中日期取

2017-10-10 10:10:53 206

原创 通过yum安装Mysql5.7+修改默认密码+远程登录

1.配置yum源# 下载mysql源安装包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm# 安装mysql源shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm1234检查mysql源是否安

2017-09-19 15:23:00 414

原创 HBase入门教程

一、概述自1970年以来,关系数据库用于数据存储和维护有关问题的解决方案。大数据的出现后,好多公司实现处理大数据并从中受益,并开始选择像 Hadoop 的解决方案。Hadoop使用分布式文件系统,用于存储大数据,并使用MapReduce来处理。Hadoop擅长于存储各种格式的庞大的数据,任意的格式甚至非结构化的处理。Hadoop的限制Hadoop只能执行批量处理,并且只

2017-09-07 08:39:46 1215

原创 判断字符串是否包含中文

public static boolean isContainChinese(String str) {       Pattern p = Pattern.compile("[\u4e00-\u9fa5]");       Matcher m = p.matcher(str);       if (m.find()) {           return true;   

2017-08-31 15:44:00 339

原创 搭建VM的虚拟机下hadoop集群环境

前言大家都知道,Hadoop的部署方式可分为单机模式伪分布式完全分布式本篇主要讲解的就是完全分布式。搭建完全分布式的集群环境,需要多台的硬件设备,作为初学者,为了搭建集群去买多台电脑,多少有点不现实,所以这里我采用的是VM虚拟机,模拟搭建一个由三台机器组成的集群。要想成功搭建hadoop的分布式环境,需要具备安装和操作VM虚拟机,使用Ubuntu系统的基本命

2017-08-25 11:20:46 3717

原创 Ubutu之间ssh免密登录设置

这里假设主机A和主机B之间需要配置互相的免密登陆 Ubuntu默认有ssh的客户端,所以不用安装; 主机A和B需要安装server端,使用如下语句:apt-get install openssh-service11A和B分别安装完成后测试是否可用:ssh localhost11确认可用后,A和B都修改配置文件(我们这里需要使用root用户来登陆,所以需要修改如果没有

2017-08-24 16:27:42 235

原创 微信最新的系统默认emoji表情集

最近在开发一个IM App,需要些表情,本着遵从用户的习惯,借助微信的emoji表情仅做开发收集,无意冒犯版权

2017-08-18 08:39:40 3942

空空如也

空空如也

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

TA关注的人

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