开发总结
文章平均质量分 60
乃哥1
纸上得来终觉浅,绝知此事要躬行。
展开
-
Android 设置可抓包
Android 抓包设置原创 2023-02-04 15:34:16 · 1003 阅读 · 0 评论 -
Android resource linking failed,解决
Android resource linking failedE:\XXXXX\XXXXX\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:6162: error: resource android:attr/lStar not found.error: failed linking references.今天跑一个曾经的项目,报了如上错误;几经周折得以解决;如下记录:1、全原创 2021-09-05 16:02:36 · 10923 阅读 · 0 评论 -
Android 检测手机是否被Root
public class CheckSysUtils { public static boolean isDeviceRooted() { return checkRootMethod1() || checkRootMethod2() || checkRootMethod3(); } //查看系统是否测试版 private static boolean checkRootMethod1() { String buildTags = and..原创 2021-01-19 17:47:57 · 1240 阅读 · 1 评论 -
设置 app 不能在模拟器上运行
今天收到测试提的一个问题,就是需要做到“移动应用不能在模拟器中运行”。度娘了一圈,已实现,现做记录:本次记录主要参考:https://blog.csdn.net/wei_zexu/article/details/109535682?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-3&spm=1001.2101.3001.4242都说“夜神”模拟器功能强大,于是我也装了一个;将打包好的a转载 2021-01-19 14:19:24 · 10083 阅读 · 2 评论 -
This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this pr
Github上面下载了一个 项目,想学习一下,打算运行一下,编译了一会,就报错;错误如下:意思是此版本的用于IntelliJ IDEA(或Android Studio)的Android支持插件无法打开此项目,请使用4.1或更新版本重试。接下来那就升一下级;Update and Restart 点一下如你所想,更新后重启,便可;...原创 2021-01-18 18:22:27 · 20617 阅读 · 3 评论 -
Kotlin WebView 使用
使用Kotlin 敲了一个WebView 练手案例;正常加载一个Url,及加载失败后,点击重加载按钮后,重新加载;上代码:class MainActivity : AppCompatActivity(), View.OnClickListener { private val url = "https://www.baidu.com/" var isError: Boolean = false override fun onCreate(savedInstanceSt原创 2021-01-07 11:57:17 · 1545 阅读 · 1 评论 -
setTextColor
一:<.......android:color="#EEEEEE"/>二:view.setTextColor(Color.parseColor("#FF2222"));三:view.setTextColor(Color.GRAY);四:view.setTextColor(getResources().getColor(R.color.colorPrimary));五:view.setTextColor(0x000000);六:view.setTextColor(Color.rgb...原创 2020-12-30 21:25:36 · 227 阅读 · 0 评论 -
EditText 限制输入字符
上代码:<EditText android:layout_width="200dp" android:layout_height="50dp" android:inputType="number" android:digits="0123456789." />如上就限定了一个EditText中只可以输入IP地址;值得记录的是一个我曾经没用过的属性:android:digits="",在digits属性中设置允许的字符,未允许的字符即使软键盘上原创 2020-12-23 11:01:30 · 181 阅读 · 0 评论 -
Caused by:com.alibaba.android.arouter.exception.HandlerException:ARouter::ARouter init logistics ...
在做一个模块化项目的时候,需要将项目中暂时不用的模块暂时删除掉,删除掉之后重新跑项目,就报这个错;错误定位在ARouter初始化那一行。必是和ARouter有关。我的解决办法:1、首先删除干净项目中与被删模块ARouter入口代码; ARouter.getInstance().build("/XXX/XXX").navigation().loginPush(“需要传递的参数”); 2、卸载当前apk,重新安装 ;问题至此解决;原因是:...原创 2020-12-09 14:26:12 · 4426 阅读 · 5 评论 -
仿多层次ProgressBar
先看效果话不多说,直接上代码,有用的拿去<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layou原创 2020-12-01 14:07:59 · 96 阅读 · 0 评论 -
面试基础知识储备
1、Java8种基本数据类型; byte: 1字节 short: 2字节 int: 4字节 long: 8字节 double:8字节 float:4字节 char:2字节(C语言中是1字节)可以存储一个汉字 boolean:1字节 false/true(理论上占用1bit,1/8字节,实际处理按1byte处理)2、int与integer的区别int是基本数据类型 Integer是int 的封装类 int和Integer都可以表示某一个数值 ...原创 2020-11-27 17:52:49 · 464 阅读 · 0 评论 -
List 数据去冗 LinkedHashSet
对List数据的去冗,分两种情况,话不多说,直接上代码:第一种:package com.example.mylist;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import java.util.ArrayList;import java.util.LinkedHashSet;import java.util.List;publ原创 2020-11-02 18:22:37 · 542 阅读 · 0 评论 -
Android Jetpack 简单介绍(三)
最近看到一句朋友圈发的摘抄,略有感触:想不到吧,又该穿长袖了,你看,时间走得多快,可你,却还是一无所获。疫情刚上班时,树叶都还没发芽,现在,叶子已经开始枯了。你怕不怕,这辈子就是你上辈子说的下辈子!我再次学习一下Jetpack:接着《Android Jetpack简单介绍(二》继续说;项目中自动生成的MainViewModel,它做作用是什么呢?我们点进ViewModel看看;源码就不贴出了,我们直接上源码中带的例子:MainFragment publi..原创 2020-10-15 16:06:47 · 195 阅读 · 0 评论 -
Android 用RxJava3实现 倒计时和 延时加载
用RxJava3 写一个倒计时,个人认为比较优雅;看例子:1、首先集成implementation "io.reactivex.rxjava3:rxjava:3.0.4"implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'2、具体代码如下://点击按钮,开始倒计时public void startTimeClick(View view) { /** * start: 开始数值 * count:原创 2020-07-23 15:47:09 · 1881 阅读 · 0 评论 -
线程池相关的概念
记录一点关于线程池的概念: 一、什么是线程池: 线程池简单的说就是管理线程的一个总调度官。 它可以存储着多个核心线程和多个非核心线程, 也可以派遣核心线程或非核心线程去处理事情。 线程池原理简单的解释就是会创建多个线程并且进行管理, 提交给线程的任务会被线程池指派给其中的线程进行执行, 通过线程池的同意调度,管理使得多线程的使用更简单,高效。 二、为什么要使用线程池? 1.重用线程池中的线程,避免因为线程的创建和销毁所带来的性能开销。 2.能有效控制线程池的最大并...原创 2020-07-22 15:56:17 · 231 阅读 · 0 评论 -
SmartToast
项目Github地址:https://github.com/the-pig-of-jungle/smart-show项目概况:一个封装了Toast、Snackbar、Dialog的开源库;先看Toast封装的效果(逐个点击):集成:// for androidximplementation ('com.github.the-pig-of-jungle.smart-show:all:3.0.2')//如果会使用到SmartSnackbar模块,需添加material库,suc原创 2020-06-04 19:56:56 · 1385 阅读 · 2 评论 -
一个功能强大的RecyclerViewAdapter 适配器 BaseRecyclerViewAdapterHelper
github:地址:https://github.com/CymChad/BaseRecyclerViewAdapterHelper/blob/master/readme/0-BaseRecyclerViewAdapterHelper.mdgithub上介绍的比较详细,就不过多赘述;原创 2020-06-02 14:37:13 · 217 阅读 · 0 评论 -
Kotlin 自定义View报错
在用Kotlin 写一个自定义view 的时候,出现报错:原因是,我们在自定义View时,人如果有自定义View有属性或者在XML中调用,而我们这样写(也就是Java中的一个参数的构造方法):自然就报错了。正确方式如下(即为Java中的两个参数的哦构造方法):...原创 2020-05-31 17:42:27 · 737 阅读 · 0 评论 -
Android 事件分发机制梳理 Kotlin
关于Android事件分发,想必是哪个Android 开发者都绕不开的基础知识。今天就简短的梳理一下,并用简单的Demo进行演示:首先得知道,Android 事件在哪几个对象之间传递呢?答:Activity、ViewGroup、View在这三个对象之间的事件传递的方法有哪些呢?直接上demo代码片段:Activity 代码:自定义view代码片段:自定义ViewGroup代码片段:知道了以上,再简单的进行验证一下事件分发的流程:很简单的案例..原创 2020-05-31 17:17:27 · 673 阅读 · 0 评论 -
MPAndroidChart 整理
近来由于业务需求,要做图表类型的数据展示,故想到了MPAndroidChart先上图:由于是Pad上的截图,所以图片有点大;首先说MPAndroidChart的集成;implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'maven { url "https://jitpack.io" }集成后直接上代码:1、布局代码:<?xml version="1.0" encoding="...原创 2020-05-28 22:33:37 · 4599 阅读 · 1 评论 -
Gradle project sync failed. Basic functionality(e.g.editing.debugging) will not work properly.
在项目中,我们往往需要继承一些第三方的库,以便更加快捷的实现我们的需求;但是在新建的工程中,我们继承进第三方库后,项目编译不过;控制台出现报错:ERROR: Failed to resolveGradle project sync failed . Basic functionality(e.g.editing.debugging) will not work property;Try Again 几次还是这样,是为什么呢?既有可能是在build.gradle中少加了一个maven原创 2020-05-27 10:40:28 · 2729 阅读 · 0 评论 -
MediaPlayer 播放在线音频卡死
近来项目中有播放音频的需求,于是想用MediaPlayer先写个Demo;布局代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par原创 2020-05-24 20:15:35 · 2044 阅读 · 1 评论 -
Android Jetpack 简单介绍(一)
在学习Jetpack之前,先回顾一下Android开发中的三种开发模式:1、MVC 模式 Model-View-Controller2、MVP 模式 Model-View-Presenter3、MVVM 模式 Mode-Viewl-ViewModel由于今天主要介绍Jetpack,所以就不得不再次回顾一下MVVM;由于Android开发生态的多样性,一个项目...原创 2020-04-27 10:07:24 · 276 阅读 · 0 评论 -
找不到kotlin.jvm.functions.Function2的类文件
在敲一个Demo时,引用了一个开源的组件,集成进来,看看样式还挺好;看源码发现,组件是用Kotlin写的,当我监听它ItemSelectListener,重写了onItemSelect方法,并在里面写了个吐司,想看看 吐司的内容;于是就要将项目跑起来,问题就随之而来:控制台也在疯狂的暗示:找不到kotlin.jvm.functions.Function2的类文件,这如何是好呢?...原创 2020-04-24 15:24:14 · 2856 阅读 · 1 评论 -
从源码角度再看EventBus 的使用
首先得明确EventBus是用来做什么的呢?由greenrobot 组织贡献(该组织还贡献了greenDAO),一个Android事件发布/订阅轻量级框架功能:通过解耦发布者和订阅者简化Android事件传递EventBus可以代替Android传统的Intent,Handler,Broadcast或接口函数,在Fragment,Activity,Service线程之间传递数据,执行...原创 2020-04-22 21:22:41 · 183 阅读 · 0 评论 -
Activity 中 Handler的正确使用
public class MainActivity extends AppCompatActivity { TextView test_text; private final MyHandler mHandler = new MyHandler(this); @Override protected void onCreate(Bundle savedInsta...原创 2020-04-18 14:22:39 · 1297 阅读 · 0 评论 -
Java 中的单利模式,及关键字 volatile 和 synchronized的使用
先上一个简单的单例懒汉模式的例子,并将关键字 volatile 和 synchronized在单例中用起来;volatile关键字我理解的作用,就是多个线程同时操作同一个变量时,保证不同线程拿到的都是修改后的同一变量;synchronized同步块(同步锁),通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同...原创 2020-04-16 22:07:36 · 344 阅读 · 2 评论 -
两个APP之间的跳转,从A应用跳转至B应用,如B未安装,则进行下载安装
最近有一个小需求,就是从A应用跳转到同一公司下的B应用,如B未安装,则进行下载安装;需求简单,再此记录,其中也有常常被大家忽略的小知识;记录一下,方便下次拿来直接用,也供大家互相学习;实现步骤如下;1、权限添加、权限的动态申请,及在manifest清单文件中的配置;2、检测手机内是否安装B应用;3、如已安装直接跳转;4、如未安装,则下载安装;接下来,咱们一步步的看代码实...原创 2020-04-14 20:59:47 · 1267 阅读 · 0 评论 -
不再造轮子,让Android开发更迅速
前年写过一篇关于Android的一点基础知识的文章,对回顾总结还是有一定的,随着时间流逝,第三方框架也是在推陈出新;今天也有点时间,所以总结下近来用到的第三方框架。1、implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'LifeCycle是GoogleApp架构中推荐的一个组件,以上这个版本包含了liveData,li...原创 2020-04-12 20:50:49 · 1016 阅读 · 1 评论 -
Android RSA加密在项目中的应用
由于项目安全考虑,需要对关键数据进行加密;本文就RSA加密进行再次学习,本文就文中的工具类进行简单说明;如有不足之处,希望大家予以反馈,便于互相学习;先说下RSA加密的优缺点:优点:安全性好。非对称加密使用一对秘钥,一个用来加密(publicKey),一个用来解密(privateKey);而且公钥(publicKey)是公开的(前后台的公钥是一致的),私钥只在需要做解密的一端保存(一般来讲...原创 2020-04-12 15:21:12 · 648 阅读 · 0 评论 -
记一次 Native Crash Abort message:‘FORTIPY :vsprintf:prevented 33-byte write into 32-byte buffer ’
先贴上关键日志第一眼看到日志,以为是缺少了Arm64 的so文件,查看后发现并没缺少;无奈之下,只有复现这个Crash,一点点缩小排查范围;最终将问题的矛头指向了项目中Native 层Md5加密的地方:extern "C" JNIEXPORT jstring JNICALLJava_com_symbol_business_NdkMethods_signatureParams(JNI...原创 2020-04-04 09:14:30 · 1867 阅读 · 0 评论 -
记Android 中Application Not Responding(ANR)解决
三个多月前换了新工作,新公司的项目是从外包开发的半成品。代码可圈可点,但就是稳定性差点;动不动就无响应;迫于时间紧凑,于近日,才将其解决。故作记录; 我们都知道,造成ANR的根本原因无非是在:Activity中超过5s无响应、Broasdcastreceiver中超过10s、Service中超过20s;如上,就会是页面卡死,用户体验极差; 在仔细阅读完项目...原创 2019-08-06 12:58:04 · 651 阅读 · 0 评论 -
此项目开发过程中遇到的基础知识
一、关于Handler机制1、handler:主要用于消息处理2、Message:消息,子线程向UI线程发送消息,消息中携带者相应数据3、MessageQueue:消息队列,由一个个Message消息组成4、Looper:信息泵(消息轮循器),循环处理消息队列MessageQueue中的Message,将其发送给相应的Handler他们之间的关系:Handler负责发送原创 2018-01-15 15:00:49 · 209 阅读 · 0 评论