android、java
文章平均质量分 73
csdn_SUSAN
成长才是最重要的!
展开
-
AndroidStudio 中文乱码导致编译失败问题解决
文章目录1. 问题背景2. 原因分析3. 解决办法1. 问题背景使用AndroidStudio4.1 Canary,调试github下载的QMUI Android](https://github.com/Tencent/QMUI_Android)。单独执行lintrule的jar包gradle assemble时候,出现中文乱码并编译失败。2. 原因分析由于中文注释默认是GBK,AndroidStudio能够正常显示,但是编译的时候GBK中文被gradle认为是不可映射的字符,所以会报错。3. 解原创 2020-05-21 12:06:35 · 1726 阅读 · 0 评论 -
深入理解Java反射机制(1)---应用篇
文章目录0. 引言1. 什么是Java反射2. 认识class对象2. java反射的典型使用2.1 根据类名创建对象0. 引言在实际的Android开发中,很少接触发射。最近使用MVVM重构MapTool app,view和viewModel通过泛型实现动态绑定并在base类中完成一些共有的初始化逻辑,由于base类在编译期并不确定泛型,所以无法按照常规的new对象的逻辑来获取viewMod...原创 2020-04-06 22:21:33 · 422 阅读 · 0 评论 -
泛型的深入理解和案例解析(4)---类型擦除
文章目录0. 引言1. 代码实际验证1.1 两个不同类型的集合1.2 泛型类的成员变量1.3 extends限制类型擦除0. 引言 通过前三节,我们基本上掌握了泛型的基本用法和一些特定的问题解决。但是对泛型的本质原理,还未曾了解。 我们都知道,泛型是作用在编译阶段的,让IDE帮忙检查代码。但是,到了JVM里头和普通类,普通方法,普通接口就没什么两样了。实现这种特性的专业术语叫做“类型...原创 2020-04-05 23:08:51 · 413 阅读 · 0 评论 -
泛型的深入理解和案例解析(3)--- T 和 ? 的区别
文章目录0. 引言1. 顾名而思义2. 代码验证T和?3. 一个典型的泛型嵌套问题0. 引言 在上一节《泛型的深入理解和案例解析(2)—上下界和通配符》我们提到了通配符“?”,他和T的语法貌似一样,也可以指定上下界,也可以用在集合类中,那么自然而言有个疑问,他们两个是什么关系,什么区别,各自用在什么情况下? 我先放个结论:T 本质上是参数类型的声明,相当于形参,作用在定义阶段。...原创 2020-04-05 22:31:05 · 742 阅读 · 0 评论 -
泛型的深入理解和案例解析(2)---上下界和通配符
文章目录0. 引言1. 一个问题引出上下界2. 一个问题引出通配符3. 上下界0. 引言在上一小节《泛型的深入理解和案例解析(1)—应用篇》我们知道了泛型的基本使用,并且也注意到泛型仅支持类类型,而不支持基本类型。那么问题出来了,类类型之间有继承关系,泛型是不是支持呢,本节就将对这个问题进行深入分析。1. 一个问题引出上下界问题1:比如一个ArrayList列表,要往里边放入数字,但是不...原创 2020-04-05 21:52:27 · 404 阅读 · 0 评论 -
泛型的深入理解和案例解析(1)---应用篇
文章目录0. 泛型的历史1. 一句话定义泛型2. 泛型的三种应用2.1 泛型方法2.2 泛型类2.3 泛型接口0. 泛型的历史凡事一件事情的发生,必然有其合理性。泛型是JDK 1.5 加入的一种语言特性,它主要是为了解决在集合类元素默认Object类型,添加元素没有类型限制,导致运行时出现异常的问题。在我看来泛型主要解决两个问题:编译期的类型检查。比如List指定类型,添加元素。动态...原创 2020-04-05 09:19:01 · 327 阅读 · 0 评论 -
Error: Activity class {} does not exist.Error while Launching activity 的原因
文章目录1. 问题描述2. 问题复现3. 问题原因及解决1. 问题描述如下图所示,在AndroidStudio直接运行安装app时,出现下图所示错误,导致安装失败。2. 问题复现我是在1加3t手机调试app遇到该问题的,操作步骤如下:AS正常运行,安装app;在手机上,手动卸载app;AS再次运行,安装app,则问题出现。3. 问题原因及解决复现步骤中,有一个关键点是手动卸...原创 2020-02-10 19:59:30 · 1076 阅读 · 0 评论 -
Android Genymotion 安装
文章目录1. 注册官网账号2. 下载Genymotion,安装3. AndroidStudio下载插件4. 点击Genymotion创建虚拟设备5. 安装调试 Genymotion是Android模拟器,一般用作Android调试工具,Genymotion官网有两个版本,个人使用版是免费的。1. 注册官网账号 打开 Genymotion官网 https://www.genymotion....原创 2020-01-10 16:17:45 · 343 阅读 · 0 评论 -
APK 反编译工具集和实战
文章目录0. 概述1. apk包含什么内容1.1 META_INF文件夹1.2 res文件夹1.3 AndroidManifest.xml1.4 classes.dex1.5 resources.arsc2. 我想看java代码实现2.1 工具2.2 操作步骤3. 我想获取布局文件3.1 工具3.2 操作步骤4. 查看apkTool生成的smali文件4.1 工具4.2 操作步骤5. 修改和重新打...原创 2019-12-31 15:58:22 · 912 阅读 · 0 评论 -
EditText用TextWatcher实时限制和修正
文章目录1. 需求2. 解决方案2.1 解决思路分析2.2 解决代码实现1. 需求产品经理要求EditText输入名字限制:不能有除“空格,下划线,字母,数字,中文”的其他字符。不能超过10个字符。名字第一个字符不能为空格。输入错误时,要实时检查提示并将非法字符替换为空字符。2. 解决方案2.1 解决思路分析使用正则表达式匹配字符输入是否符合要求。使用TextWatche...原创 2019-12-12 18:02:02 · 610 阅读 · 0 评论 -
Android adb使用总结记录
文章目录1. 基本用法1.1 命令语法1.2 为命令指定目标设备1.3 启动/停止1.4 查看 adb 版本1.5 以 root 权限运行 adbd1.6 指定 adb server 的网络端口2. 设备连接管理2.1 查询已连接设备/模拟器2.2 USB 连接2.3 无线连接2.4 无线连接(无需借助 USB 线)3. 应用管理3.1 查看应用列表3.1.1 所有应用3.1.2 系统应用3.1....转载 2019-07-17 11:32:53 · 2928 阅读 · 0 评论 -
ThreadLocal使用实例介绍和原理分析
文章目录1. ThreadLocal的作用1.1 一句话简介1.2 两个使用场景1.3 代码验证2. 使用实例分析2.1 不使用ThreadLocal2.2 使用ThreadLocal3. ThreadLocal实现原理1. ThreadLocal的作用1.1 一句话简介 ThreadLocal又称为线程本地存储区(Thread Local Storage,简称为TLS),每个线程都有自己...原创 2019-05-18 16:39:41 · 772 阅读 · 0 评论 -
AndroidStudio findbugs 插件检查和过滤
前言Findbugs是使用静态分析来检测java代码中的潜在错误,保证代码符合一定规则的辅助工具。本文针对AndroidStudio如何使用findbugs插件的使用和findbugs过滤进行总结,主要包含:如何安装和使用findbugs插件 如何屏蔽掉不能修改的findbugs 如何快速高效对findbugs进行修改使用findbugs工具,无非是检测和修改旧bugs以及对新增...原创 2019-04-22 20:39:52 · 3432 阅读 · 0 评论 -
Android 背景虚化实现
需求:弹出dialog或者其他一个页面,UI背景显示虚化。注意:这里虚化并不等于暗化,暗化比较简单通过设置FLAG_DIM_BEHIND即可。在Andorid 4.1 之前(SDK_INT <16),背景虚化可以使用FLAG_BLUR_BEHIND实现的,但是后续版本Android不再支持,因此才有这篇文章的做法。解决方案:step1:获取当前UI的bitmapste...原创 2019-04-26 16:09:55 · 5370 阅读 · 4 评论 -
android持久化技术中的sharedPreferences三种获取方式详解
android 主要提供了三种方式进行持久化存储,分别为文件存储、SharedPreference存储、以及SQLite。sharedPreference主要适用于存储基本数据类型的数据,Boolean、 Int 、float、long 、 string。因此比较适合存储配置文件信息,比如是否显示(boolean),登录密码(String)...,简单介绍这些,都不是关键。关键是三种获取sha原创 2015-06-05 16:04:55 · 1878 阅读 · 0 评论 -
android:focusable和android:focusableInTouchMode的区别
简明的介绍了区别。原创 2015-06-26 16:36:09 · 43024 阅读 · 9 评论 -
Android运行时权限策略和easyPermission的使用分析
Android运行时(runtime)权限是6.0引入的概念,与之相对应的是install-time策略。runtime权限继承了install-time的部分特性,对于普通权限申请依然使用install-time 策略,但是对于dangerous级别的权限,就会使用runtime策略来处理。 因此,一个权限的申请和授予是分成两个阶段来看的。一个App执行何种权限策略,总结起来...原创 2019-03-06 21:13:52 · 987 阅读 · 2 评论