
Android
文章平均质量分 68
Elson_6
Talk is cheap, show me the code.
展开
-
Android 虚拟机 (Dalvik & ART)
我们知道Android的程序虽然也是使用Java/Kotlin语言编码,并生成.class字节码,但并不能运行在JVM上,而是运行在自己的VM上。而Android程序之所以不能在JVM上运行的根本原因是.class字节码文件并不是Android的最终可执行文件,而是一个过渡产物,最终会生成dex文件在Android VM上执行。Dalvik 虚拟机和 ART 虚拟机。原创 2022-10-22 13:52:21 · 4991 阅读 · 0 评论 -
sqlite3学习笔记
在Django中使用sqlite3的学习笔记配置的环境: Python Version:3.6 Django Version:1.11.51. 创建sqlite3数据库执行python3 manage.py syncdb提示Unknown command: ‘syncdb’ $ python3 manage.py syncdb Unknown command: ‘syncdb’原创 2017-09-09 20:24:02 · 353 阅读 · 0 评论 -
快捷键 — Android Studio快捷键
Mac中Android Studio的常见符号的意思: ⌥ —> option | alt ⇧ —> shift ⌃ —> control ⌘ —> command ⎋ —> esc 名称 Window(默认) Mac(OS X 10.5+) 大小写切换 Ctrl+Shift+U Command+...原创 2017-05-04 11:42:35 · 355 阅读 · 0 评论 -
Android — 解决Android反编译XML文件乱码问题
反编译遇到的问题,仅作记录:准备反编译工具;将apk后缀改为.zip并解压,发现res文件夹下打开的布局文件乱码;反编译工具包里有一个AXMLPrinter2.jar可用于将XML变为可读文件,但是会引起数组越界的异常;这里提供另一个jar包AXMLPrinter2.S.jar,可实现解析;下载完jar包后,打开命令行,cd到该jar包路径下,运行Java -jar AXMLPrint...原创 2017-05-17 12:55:38 · 8917 阅读 · 3 评论 -
Android Studio 2.x源码关联
问题: Android Studio 查看不了源码,跳出两个选择(Download / Refresh(if already downloaded)),但是点击是没有任何反应的。解决方案:具体步骤如下首先要确保已经把源码已经下载好了,如果下载速度较慢,可参照aaa。找到如下文件 C:\Users\用户名\.AndroidStudio2.x\config\options\jdk.table.x原创 2017-02-24 20:28:58 · 747 阅读 · 0 评论 -
Android Studio之 Android SDK快速更新
简述:快速更新Android SDK1. 找到国内谷歌服务器IP地址在浏览器上输入网址 http://ping.chinaz.com/,打开网页后输入g.cn,如下图所示;2. 查询出最快的节点(如下图),复制下IP地址(203.208.43.80)。3. 在Android Studio中打开SDK Manager4. 在SDK Manager中,选择Tools->Options在HTTP Prox转载 2016-09-25 00:33:26 · 911 阅读 · 0 评论 -
Android Studio相关的文章
本文收集了一些关于Studio相关的文章Android 开发环境AndroidStudio配置Android Studio相见恨晚的操作锦集AndroidStudio上面最好用的插件原创 2016-08-06 09:50:47 · 529 阅读 · 0 评论 -
问题 — AndroidStudio SSL peer shut down incorrectly
问题AndroidStudio 编译项目时提示 SSL peer shut down incorrectly ,一般是因为资源被墙导致的,可以通过 翻墙 或者 配置镜像 来解决这个问题。方案在项目的根 build.gradle 中添加镜像仓库,如下所示:buildscript { ext.kotlin_version = '1.3.50' repositories {...原创 2019-11-02 21:26:09 · 707 阅读 · 0 评论 -
问题 — 带有EditText的BottomSheetDialog被键盘部分遮挡
目录一、概述二、问题三、解决方案四、参考一、概述有个输入评论的需求,需要在底部弹出一个带有输入框的 Dialog 。二、问题当输入框获取焦点弹出软键盘时,输入框有部分被软键盘遮挡。三、解决方案<style name="BottomSheetStyle" parent="Theme.Design.Light.BottomSheetDialog"> <it...原创 2019-06-04 10:49:43 · 3364 阅读 · 1 评论 -
问题 — Error:Cause: com.android.sdklib.repository.FullRevision异常
场景: Studio导入github上的NumberProgressBar时,出现Error:Cause: com.android.sdklib.repository.FullRevision异常。解决方案:原创 2016-11-19 19:19:41 · 510 阅读 · 0 评论 -
View — 计算键盘高度
下拉刷新上拉加载原创 2019-11-02 21:28:47 · 457 阅读 · 0 评论 -
Android EditText与软键盘的交互
收集了一些关系Android控件(EditText)方面的文章:Android点击EditText文本框之外任何地方隐藏键盘的解决办法代码来自上文,版权归原作者所有:@Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) {转载 2016-08-07 21:09:44 · 672 阅读 · 4 评论 -
ListView中EditText焦点获取
本文解决的问题:ListView中EditText的焦点如何获取?如何存储每个EditText中的数据?动态添加(删除)Item的个数?界面的基本功能<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com原创 2016-08-23 20:17:38 · 2751 阅读 · 0 评论 -
Volley源码解析及相关拓展
关于Volley源码解析的文章很多,这里推荐一篇CodeKK的文章——《Volley 源码解析》 —— 注:文章链接已经找不到了,但网上转载很多。总的来说,Volley的源码比较好理解,而且具有很强的拓展性,下面贴出两张图(流程图,类图)。建议直接看源码,然后再看这两张图,分分钟就懂了。Volley 请求流程图Volley 框架的主要类关系图关于Volley的拓展根据类图,可以发现Volley支持原创 2016-08-28 12:06:49 · 567 阅读 · 0 评论 -
问题 — RxJava遇到的问题
1. 场景:延时执行一个方法,使用timer(long delay, TimeUnit unit)操作符。如果不指定Observer的线程,则timer操作符的默认接收线程为“RxComputationScheduler-1”(即计算所使用的 Scheduler,非UI线程)。public class LoginActivity extends Activity { @Override原创 2017-06-20 13:19:34 · 704 阅读 · 0 评论 -
View — 自定义固定前缀的EditText
一、概述有一个输入框,输入框前有一段固定文本,固定文本不可删除,且颜色可设置,同时需要显示Hint文本。二、代码public class FixedEditText extends EditText implements View.OnFocusChangeListener { private String fixText; private boolean i...原创 2018-08-05 15:58:43 · 3583 阅读 · 5 评论 -
View — TextView多行文本后添加可点击的固定文本
一、概述原创 2018-08-28 18:00:33 · 1350 阅读 · 0 评论 -
View — 应用截图(Android)
目录一、概述二、View的缓存三、View.draw()3.1 什么时候使用这种方式?四、参考一、概述需求:在分享的时候,可能会遇到需要 截图整个屏幕 或 屏幕一部分 的需求;截图方案主要有以下两种:开启View的DrawingCache;调用View.draw();二、View的缓存使用条件:使用DrawingCache,则缓存的View本身需要显示在界面上。如果Vi...原创 2018-09-29 20:48:05 · 394 阅读 · 0 评论 -
问题 — ClickableSpan事件和View.onClick()事件冲突
一、概述二、代码原创 2018-09-29 23:10:34 · 4226 阅读 · 0 评论 -
Android — 混淆配置
目录为什么要混淆Android Studio 混淆配置ProGuard的作用规则实操中需注意的问题原文链接: 5分钟搞定android混淆一、为什么要混淆混淆时,会使用 a, b, c, d 这种简短而无意义的名称,对类,字段和方法进行重新命名,从而达到保护源代码的目的。二、Android Studio 混淆配置Android Studio 集成了 Java 语言的...转载 2018-11-21 09:36:29 · 1072 阅读 · 0 评论 -
Design Widget
Android 详细分析AppBarLayout的五种ScrollFlagsAppBarLayout 简单使用AppbarLayout的简单用法动图展示app:layout_scrollFlags的5种滑动属性玩转AppBarLayout,更酷炫的顶部栏Android – NestedScrolling滑动机制自定义Behavior的艺术探索-仿UC浏览器主页Coordinator...原创 2019-06-19 16:49:18 · 289 阅读 · 0 评论 -
拦截器(Interceptor)在逻辑校验中的应用
一、背景在业务需求中,常常会碰到这样的场景。假设要执行逻辑 A 前需要校验条件 B 和 C,而 B 和 C 需要执行网络(异步操作)。常规思路: 将 B 和 C 串行执行网络请求,然后通过 C 接口的回调执行 A 的逻辑。缺点: 职责不明确,代码耦合度高,回调嵌套深,不利于扩展。如果多出使用,则代码重复的问题可以通过抽取公用方法来解决。二、解决方案通过引入 拦截器 ,将多个条件作...原创 2019-09-16 22:51:52 · 414 阅读 · 0 评论 -
耗时统计工具类
背景有时候程序反应缓慢,会影响用户体验。因此需要获取这一系列操作的耗时时长来定位具体的原因。代码实现object TimeGapUtil { private val mQueue: LinkedList<TimeItem> = LinkedList() /** * 开始统计 */ fun add(title: String) { ...原创 2019-09-16 23:01:27 · 903 阅读 · 0 评论 -
Android问题集
1. 页面跳转切换时,会出现跳闪现象。场景: 一般App闪屏页的主题会设置成全屏,而首页主题是非全屏,当从全屏页面跳转到非全屏页,进入非全屏页时页面会跳闪。解决方法: 在跳转Activity之前,执行如下代码块(即在页面跳转前取消全屏的设置)getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,原创 2017-07-13 14:37:36 · 376 阅读 · 0 评论 -
源码分析 — Handler机制(线程间通信)
最近整理以前的文章,上传到优快云。一、前言线程间通讯机制的内部实现原理,即Handler、Message、MessageQueue、Looper、HandlerThread、AsyncTask类的实现以及之间的关系。二、了解相关的几个类:Handler:负责发送Message和Runnable到MessageQueue中,然后依次处理MessageQueue队列里的...原创 2018-01-02 15:11:56 · 766 阅读 · 0 评论 -
Dialog小结
Dialog Style属性<style name="dialog" parent="@android:style/Theme.Dialog"> // Dialog的windowFrame框为无 <item name="android:windowFrame">@null</item> // 是否浮现在activity之上 <item name="android:wi原创 2016-09-10 12:42:12 · 350 阅读 · 0 评论 -
四种网络请求方式详解
记录示例代码: java.net包中的HttpURLConnection类Get方式:// Get方式请求 public static void requestByGet() throws Exception { String path = "https://reg.163.com/logins.jsp?id=helloworld&pwd=android"; //转载 2016-09-05 21:17:15 · 3362 阅读 · 0 评论 -
Annotation学习笔记
公共技术点之 Java 注解 Annotation安卓注解那些事儿原创 2016-08-14 11:34:13 · 292 阅读 · 0 评论 -
源码分析 — Context 详解
记录一些知识点:Context的使用 Context作用域 Application Activity Service Show a Dialog No Yes No Start a Activity 不推荐 Yes 不推荐 Layout Inflation 不推荐 Yes 不推荐 Start a Service Yes Yes原创 2016-08-13 12:26:54 · 477 阅读 · 0 评论 -
Loading Large Bitmaps Efficiently(官方文档)
几个问题为什么要缩放图片? To avoid java.lang.OutOfMemory exceptions. For example, it’s not worth loading a 1024x768 pixel image into memory if it will eventually be displayed in a 128x96 pixel thumbnail in a原创 2016-08-25 10:33:44 · 405 阅读 · 0 评论 -
泛型&反射
本文收集了一些较好的关于泛型和反射相关的文章泛型《夯实JAVA基本之一 —— 泛型详解(1):基本使用》《夯实JAVA基本之一——泛型详解(2):高级进阶》反射《夯实JAVA基本之二 —— 反射(1):基本类周边信息获取》《夯实JAVA基本之二 —— 反射(2):泛型相关周边信息获取》《夯实JAVA基本之二 —— 反射(3):类内部信息获取》原创 2016-08-05 23:43:52 · 390 阅读 · 0 评论 -
Gson系列
收集的一些关于Gson框架的文章,文章版权归原作者所有:Gson用户使用文档你真的会用Gson吗?Gson使用指南(一)你真的会用Gson吗?Gson使用指南(二)你真的会用Gson吗?Gson使用指南(三)你真的会用Gson吗?Gson使用指南(四)Gson全解析(上)-Gson基础Gson全解析(中)-TypeAdapter的使用Gson全解析(下)-Gson性能分析原创 2016-08-09 21:45:11 · 542 阅读 · 0 评论 -
Android adb命令
收集整理一些adb用到的命令:常用命令列出目标设备上的activity栈(back stack)和任务(task)的信息, 还有其他组件的一些信息和一些关于进程的信息 adb shell dumpsys activityACTIVITY MANAGER RECENT TASKS (dumpsys activity recents) Recent tasks: * Recent #0: T原创 2016-08-24 21:23:02 · 559 阅读 · 0 评论 -
Java 日期的几种常见操作工具类
聊聊 Java 中日期的几种常见操作 —— 取值、转换、加减、比较主要的知识点:日期取值(常用)日期转换(常用)日期加减日期比较(重要)将字符串解析成日期格式public static Date parse(String time) { // TODO Auto-generated method stub return parse("yyyy-MM-dd", time);原创 2016-08-10 10:21:02 · 450 阅读 · 0 评论 -
px,dp,sp转换工具类
px,dp,sp转换工具类public class UiUtils { /** * dp转换px */ public static int dp2px(Context context,int dip) { final float scale = context.getResources().getDisplayMetrics().density;原创 2016-09-10 13:28:27 · 409 阅读 · 0 评论 -
Android 图片压缩
Charles可以模拟各种网络环境1. 如何计算图片的大小?总分辨率 * 像素表示的位数。这公式是算位图的占用空间大小,而JPEG&JFIF是将位图压缩,不仅压缩图像质量还压缩图像占用空间(后面会讲到)。也就是说图像压缩不等于压缩质量和分辨率,还有压缩占用空间。2. JPEG&JFIF压缩做了什么?这个质量到底代表了什么?其实JPEG&JFIF做了两件事情:去掉视觉上的冗余信息 去掉数据本身结构的原创 2016-08-14 13:07:06 · 320 阅读 · 0 评论 -
Caching Bitmaps(官方文档)
Displaying Bitmaps Efficiently系列Loading Large Bitmaps Efficiently Processing Bitmaps Off the UI Thread Caching Bitmaps Managing Bitmap Memory Displaying Bitmaps in Your UICaching Bitmaps(缓存)Use原创 2016-08-25 12:00:41 · 305 阅读 · 0 评论 -
Spannable的使用(文本样式设置)
setSpan(Object what, int start, int end, int flags)第一个参数 what 意思 AbsoluteSizeSpan 指定文字大小 TypefaceSpan 可以设置不同的字体 AlignmentSpan.Standard 标准文本对齐 BackgroundColorSpan 文本原创 2016-10-30 19:47:18 · 1049 阅读 · 0 评论 -
Android 表单逻辑校验方案的探讨
表单页面逻辑校验的探讨一、需求如图,一个简单的表单页面,本文只讨论提交表单时的逻辑校验。 二、以前的写法public class LoginActivity extends AppCompatActivity implements View.OnClickListener { private EditText mTvUserName; private EditText mTvPass原创 2017-12-21 14:56:13 · 688 阅读 · 0 评论 -
Android消息推送接收后,通知栏的显示
消息推送接收到后,显示通知栏 public static void showNotifictionIcon(Context context) { NotificationCompat.Builder builder = new NotificationCompat.Builder(context); Intent intent = new Intent(cont原创 2017-12-20 14:33:12 · 10014 阅读 · 0 评论