![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
生死看淡,不服就干
天之道,损有余而补不足;人之道,损不足以奉有余。
展开
-
android 带固定文本EditText
话不多说,直接上源码:public class FixedEditText extends AppCompatEditText { private String fixedText; private int fixedTextGravity; private int leftPadding; private int rightPadding; private int fixedTextWidth; private Paint fixedTextPaint;原创 2020-09-10 10:48:03 · 956 阅读 · 0 评论 -
android在Module中引用第三方的jar包和.so包,运行App时提示找不到.so文件的解决方法
先上报错截图这个错误是说找不到.so文件。然后我就打开了apk安装包看了一下,发现根本没有libs目录。也没有找到module中引入的.so文件。最后我突然想到,是不是我引入的jar包的方式有问题,我们正常导入用的是implementation,然后我改成了api引入这个时候我再打包生成,发现apk文件中已经有了libs目录,也找到了module中引入的.so文件。这是在运行程序发现报下面的错找不到类,然后发现是有一个jar包没有添加到项目中。到此所有问题全部解决。...原创 2020-08-14 10:34:58 · 1964 阅读 · 0 评论 -
从安卓Handler到java关键字volatile
安卓中线程间通信是通过Handler来进行的。而Handler的原理是Loop在维持一个全局静态的ThreadLocal对象,ThreadLocal对象里面通过以线程对象为key,Loop对象为值来存储每个线程自己的Loop.在每个线程new一个Handler的之前都要调用Looper.prepare();就是为了给当前线程创建自己的Loop,而在创建Handler的时候需要获取到当前线程的Loop,这就是为什么要先调用Looper.prepare()的原因。而线程的Loop对象里面又维护一个messag原创 2020-06-05 17:52:17 · 192 阅读 · 0 评论 -
android studio 单元测试运行一直编译不通过报android studio test java.lang.NullPointerException
今天在android studio中新增了一个纯java代码的test单元测试,结果运行的时候一直编译失败,查看报错信息android studio test java.lang.NullPointerException百度没有查到结果,没办法只能google了,最后在stackoverflow上找到了解决办法。链接解决方案很简单,就是把你项目原先使用的android sdk删除掉然后重新...原创 2020-05-06 17:31:58 · 793 阅读 · 0 评论 -
android布局界面点击事件在控件间的传递路径
android的界面触摸事件分为三种,action_down,action_move,action_up这几个事件。这里我们主要说一下action_down事件的传递。首先android的事件是从父控件->子空间,再从子控件->父控件。U型传递。android的控件分为两种viewgroup和view;viewgroup处理事件时有三个方法,dispatchTouchEvent、...原创 2020-04-17 18:04:26 · 643 阅读 · 0 评论 -
android 混淆规则
-keep class com.xxx.**-keep class com.xxx.*一颗星表示只保持该包下的类名,而子包下的类名还是会被混淆.两颗星表示把本包和所含子包下的类名都保持注意:用以上方法保持类后,你会发现类名虽然未混淆,但里面的具体方法和变量命名还是变了,这时如果既想保持类名,又想保持里面的内容不被混淆,我们就需要以下方法了-keep class com.xxx.*{*;...原创 2020-03-24 10:25:21 · 569 阅读 · 0 评论 -
Android debug database一直打不开数据库的问题
1.问题描述最近要在新项目中添加数据库表,然后就准备集成Android debug database 来调试数据库,然后就出现了一个问题,首先没有报错,项目都是正常运行的,但是我在浏览器访问数据库连接的时候,总是跳转到另外一个页面,无法访问数据库。2.解决方案然后整个人就有点懵逼,最后找了一,两天才发现是资源目录的问题,因为我自己的项目中也有assets文件夹,而Android debug ...原创 2019-12-24 15:38:27 · 942 阅读 · 0 评论 -
Android活动篇-AppCompatActivity
android中所有的活动都要继承于Activity,而AppCompatActivity是Activtiy的子类。AppCompatActivity是一种向下兼容的Activity,它可以将Activtiy在各个系统版本增加的特性和功能最低兼容到Android2.1系统。...原创 2019-08-15 10:39:11 · 977 阅读 · 0 评论 -
修改RadioButton样式
android的默认光标颜色是红色的我不太喜欢,就修改了一下,程序主题的colorAccent的颜色,结果光标颜色是改了可是没想到RadioButton选中的颜色也改了,这个就很坑了。然后就是试各种方法去设置RadioButton的颜色,主要是为了偷懒,像写自定义控件这种比较麻烦的都被我排除了,结果还真被我找到了一个很简单的方法,修改一下RadioButton的主题样式就可以了。具体看这个Radi...原创 2019-05-28 14:02:54 · 1297 阅读 · 0 评论 -
从Activity1切换到Activity2活动的生命周期的调用顺序
如果调用了finishActivity1的onPauseActivity2的onCreateActivity2的onStartActivity2的onResumeActivity1的onStopActivity1的onDestory原创 2019-05-16 17:17:57 · 617 阅读 · 0 评论 -
Android studio导入butterknife遇到的坑
今天准备用一下butterknife这个库,用肯定用最新版的了,然后上github上一看最新版的是10.1.0,于是按照github上的文档导入依赖,发现build的时候会报下面这个错误。查了一下才知道这是因为butterknife10和9的版本需要SDK28才行,好吧既然如此我就退而求其次,用8.8.1算了,然后又是一通操作猛于虎,好家伙还是build不过妈的怎么回事,(这里说一下我的and...原创 2019-05-21 15:18:30 · 1356 阅读 · 0 评论 -
Activity和Fragment之间的生命周期
从Activity启动另一个包含Fragment的Activity的生命周期Activity的onPauseFragment的onAttachFragment的onCreateFragment的onCreateView承载Fragment的Activity的onCreateFragment的onActivityCreatedFragment的onStart承载Fragment的Activity的...原创 2019-05-20 10:21:37 · 185 阅读 · 0 评论 -
由解决Listview和scrollview滚动冲突到android事件分发机制
最近在项目中发现scrollview中嵌套listview会导致listview滚动失效,然后就上网查了一下资料,发现这个问题主要涉及到android事件的分发机制。要想很好的解决这个问题就一定要对android事件分发机制有一定的理解,通过网上查资料和查看android源码,对android事件分发机制有了一点自己的理解。android的事件分发主要是action_down,action_mo...原创 2019-05-07 10:56:39 · 396 阅读 · 0 评论 -
Retrofit2简单使用总结
. 添加依赖在build.gradle中添加如下依赖:dependencies { implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.retrofit2:converter-scalars:2.5.0'}第一个是retrofit库,第二个是retrofi...原创 2019-05-14 15:33:12 · 169 阅读 · 0 评论 -
android的消息处理机制
前言android的消息处理机制主要有looper,messagequeue,threadlocal,handler构成。它们的相互关系图如下所示:保存当前线程创建循环读取消息发送消息处理消息threadlocallooper preparemessagequeuelooper loophandler每个线程都有一个唯一的looper对象,保存在threadlocal中,消息队列在loope...原创 2019-01-25 14:23:11 · 84 阅读 · 0 评论 -
context学习笔记
ContextContext是Application,Service, Activity的基类。Context不是在类的构造方法中初始化的,而是在attachBaseContext()方法中初始化的。具体的对Context解说可以参考这个链接,说的很详细了。详细自定义ApplicationApplication每个程序中只有一个,不需要再使用单例模式去控制它。getApplication(...原创 2019-01-14 15:40:21 · 199 阅读 · 0 评论 -
Android studio中gradle plugin,gradle,buildtool的理解
前言学习android开发也有一段时间了,一直被build.gradle中的各种版本搞得糊里糊涂,修改一下SDK版本,然后就提示一堆编译错误,今天决定把这个搞清楚,我觉得要想搞清楚这个问题首先要把gradle plugin, gradle, buildtool的关系弄清楚,要想弄清楚这几个东西的关系首先要明白android项目的编译流程,先上图:gradle是什么?gradle在我的理解中...原创 2019-01-08 17:01:58 · 1281 阅读 · 0 评论