自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qiantanlong的博客

安卓技术分享

  • 博客(79)
  • 资源 (3)
  • 收藏
  • 关注

原创 使用idea生成可执行jar

1、新建包含main方法的类2、设置生成jar的配置(1)选中项目,右键file,选中Project Struture(2)选择Artifacts,配置创建jar的来源(3)输出jar的路径3、编译生成jar4、查看生成的jar文件5、然后我们cmd进去当前目录,执行java -jar TestJar.jar执行当前jar包(前提是配置jdk),如图可见,我们的jar已经可以正常执行了。6、在jar所在目录,...

2021-10-12 17:02:34 1749 1

原创 ERROR: Failed to parse XML in D:\MyAPP\XXXX\app\src\main\AndroidManifest.xml

ERROR: Failed to parse XML in D:\MyAPP\XXXX\app\src\main\AndroidManifest.xmlParseError at [row,col]:[21,13]Message: expected start or end tagAffected Modules: app这个报错指向很明确,就是AndroidManifest文件的21行,13列有错误,所以一定要仔细看一看,不要怀疑studio,怀疑studio出问题了,会迷失方向的。原因

2021-04-21 16:48:25 1371

原创 Ubuntu安装Android Studio和SVN配置

Ubuntu安装Android Studio和SVN配置Java jdk的配置在/home/hongzhen/目录下新增Java目录,下载Java的Linux包,放到/home/hongzhen/Java目录下。执行tar zxvf jdk-8u172-linux-x64.tar.gz Java ,解压到Java目录。配置环境变量执行sudo vim /etc/profile命令,在末尾追加Java的配置。export JAVA_HOME=/home/hongzhen/java/jd

2021-04-02 17:42:10 300

原创 Ubuntu配置Java环境

Ubuntu配置Java环境下载Java的jdk文件,一定要是Linux版本的在用户的工作目录下创建java目录mkdir java,切换到Java目录,解压jdk文件到当前目录,tar zxvf jdk-8u172-linux-x64.tar.gz配置环境变量sudo vim /etc/profile这里需要输入密码,打开后在末尾添加Java环境变量。export JAVA_HOME=/home/hongzhen/java/jdk1.8.0_...

2021-04-02 17:16:41 240

原创 Could not create task ‘:app:minifyAlimsReleaseWithR8‘.

这个报错的原因是缺少对应的SDK编译工具版本,查看compileSdkVersion: 29和buildToolsVersion: "29.0.3",然后打开SDK manger查看对应的29 SDK platform进行安装,重新进行编译即可解决问题。

2021-02-02 22:20:01 5364

原创 Ubuntu20.4安装SVN后检出项目报错Error validating server certificate for

Ubuntu20.4安装SVN后,第一次使用AndroidStudio检出项目时报错,无法连接到指定SVN项目路径,但是项目地址检查是没有问题的,SVN服务也没有问题,可以尝试通过命令行来操作,切换到命令窗口,执行检出项目的命令。此时发现报错如下,意思是证书有问题,询问你(R) 弹出、临时接受(t)还是永久接受(p),此时输入p就可以进入输入用户名密码的步骤。再次到AndroidStudio中检出项目就正常了,AndroidStudio检出报错,如果没有明确的报错信息,可以通过命令行来查看并...

2021-01-27 11:49:19 606

原创 Ubuntu20安装搜狗拼音输入法

添加中文语言支持,如果安装系统时已经选择了中文,可以忽略打开 系统设置——区域和语言——管理已安装的语言——在“语言”tab下——点击“添加或删除语言”弹出“已安装语言”窗口,勾选中文(简体),点击应用回到“语言支持”窗口,在键盘输入法系统中,选择“fcitx”注意:如果在键盘输入法系统中,没有“fcitx”选项时,建议先打开终端手动安装fcitx:第一步:执行sudo apt-get install fcitx安装fcitx输入法系统,默认是ibus。这一步也可..

2021-01-26 21:53:01 1744

原创 Android X升级处理方案

Android X升级处理方案AndroidX介绍从 API 28(Android 9.0,Pie)开始,Google 推荐开发者从原来的各种支持库转移到一个新版本的名为 AndroidX 的支持库。它相比老支持库(android.support.v7或android.support.v4)有着无需操心版本控制、实时更新的优点。原有的支持库将被保留并且可以继续使用,但接下来所有新的支持都将发布在 AndroidX 上。迁移准备AndroidX的迁移要求在在AndroidStudio 3.2 或更

2021-01-25 18:01:59 685

原创 Ubuntu常用软件安装

视频播放:smplayersudo apt-get install smplayervlcsudo apt-get install vlc

2021-01-23 13:37:24 625

原创 Ubuntu安装中文语言和拼音输入法

Ubuntu安装中文语言和拼音输入法介绍ibusIbus是输入法框架(常见的还有fcitx框架),不通的输入法框架需要不同的输入法程序,Ibus是Ubuntu系统自带的。搜狗拼音和百度拼音是基于fcitx框架的,如果想要使用搜狗拼音需要单独安装fcitx框架。设置中文语音支持Ubuntu默认没有启动中文语言支持,需要进行设置和安装必要的中文组件。第一步:安装中文语言包以上步骤忽略了安装的进度,安装过程需要几分钟时间,因网络情况而已。第二步:设置中文语言..

2020-12-14 11:41:54 1852

原创 VMware安装Ubuntu虚拟机及使用SecureCRT连接

在VMware中安装Ubuntu系统 安装过程,自行百度,需要特别注意的是设置Ubuntu的网络连接模式为bridge(桥接模式),否则同在局域网的其他主机,无法连接Ubuntu系统。在这种模式下,VMware虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以...

2020-12-01 17:37:13 469

原创 VMware安装Centos7虚拟机及使用SecureCRT连接

在VMware中安装Centos7系统 安装过程,自行百度,需要特别注意的是设置Centos7的网络连接模式为bridge(桥接模式),否则同在局域网的其他主机,无法连接Centos7系统。在这种模式下,VMware虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息...

2020-11-30 15:15:10 777

原创 安卓textview为指定文本变色

为了强调特定的文本内容,需要对关键字变色、加粗等操作,使用Html可以实现这个效果。 代码比较简单:private String str = "天啊,我今天真的很高兴,今天天气很好,干好事天天";private void logIndex(String key) { String textStrBlue = "<font color=\"#0000ff\"><strong>"; String endBlue = "</stro.

2020-11-14 10:51:22 321

原创 安卓线程同步方案

public class ThreadTest { private Object lock = new Object(); public void threadRunFirst() { new Thread(new Runnable() { @Override public void run() { threadRunSecond(); synchronized..

2020-11-04 16:12:47 129

原创 RecycleView使用EditText的数据和焦点错乱问题解决方案

RecycleView是常用的列表控件,在日常的开发中使用频率很高,使用起来很方便,只要设置好条目布局和数据就可以完美的展示数据。EditText是常用的输入控件,用于用户的数据输入。二者本来各自使用都很容易,但是如果放到一起就出现问题,条目的复用导致EditText输入的内容出现错乱,焦点的获取也混乱了,令很多新手大为头疼。基本的思路是要在条目的可见和隐藏时处理好焦点的问题,要将操作的EditText的位置坐标记录下来,进行有效管理,还有将输入框的显示和隐藏也管理起来。解决的代码本身并不复杂,注释也标

2020-09-21 14:20:32 1665

原创 Glide加载OkHttp框架https协议的图片

Glide是支持加载https协议图片的,需要自定义GlideModule的实现类,将OkHttp框架实现了https协议的OkHttpClient配置进去。我测试的Glide版本是3.7.0,Okhttp3的版本是3.4.1,核心的类只有三个供大家参考。public class GlideModuleForOkHttps implements GlideModule { @Override public void applyOptions(Context context, Glide

2020-09-11 15:42:39 694

原创 获取手机已安装的APP的信息,包括APK文件数据

这个功能在华为手机上测试了,其他机型不确定是不是可以啊。核心的工具类贴处理,列表展示相关的自行编写。public class ApkInfoManager { private static ApkInfoManager appInfoManager; private ApkInfoManager() { } public static ApkInfoManager getInstance() { if (appInfoManager ==...

2020-09-11 11:21:58 856

原创 Python数据格式转换

函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象 x 转换为字符串 repr(x) 将对象 x 转换为表达式字符串 eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s) 将序列 s 转换为一个元

2020-09-08 21:53:10 1197

原创 Python格式化输出

%用法name = "QianTanLong"age = 34weight = 75.5stu_id = 11、整数的输出%o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制print("八进制%o" % age)print("十进制%d" % age)print("十六进制%x" % age)输出:八进制42十进制34十六进制222、浮点数输出%f ——保留小数点后面六位有效数字  %.3f,保留3位小数位%e ——保留

2020-09-06 11:30:07 188

原创 RecyclerView实现拖动调整Item位置,侧滑删除Item功能

实现长按条目调整位置和侧滑删除功能,核心是ItemTouchHelper类,直接贴代码了。DefaultItemTouchHelperpublic class DefaultItemTouchHelper extends ItemTouchHelper { private DefaultItemTouchHelperCallback mDefaultItemTouchHelperCallback; private OnItemMoveListenter itemMoveListe

2020-07-18 16:40:06 420

原创 Sqlcipher异常

异常内容:No implementation found for void net.sqlcipher.database.SQLiteDatabase.dbopen(java.lang.String, int) (tried Java_net_sqlcipher_database_SQLiteDatabase_dbopen and Java_net_sqlcipher_database_SQLit...

2020-01-13 15:15:48 635

原创 TextView下划线效果

TextView下划线效果支持行间距的设置,padding属性的设置,功能简单,代码也简单。代码@SuppressLint("AppCompatCustomView")public class LinedTextView extends TextView { public LinedTextView(Context context) { super(context...

2020-01-10 15:33:41 324

原创 自定义ListView,既可以与Scrollview嵌套使用正常显示,也可以独立使用正常滑动

ListView与Scrollview嵌套使用时,只能显示一个item的高度,需要重写onMeasure方法,这样就可以显示完整了,但是ListView的高度就是所有子item的高度的和并且无法滑动,正好使用scrollview的滑动功能,二指完美结合。 @Override public void onMeasure(int widthMeasureSpec, int heightM...

2020-01-02 16:01:23 319 3

原创 Android selector属性实例详解

Android selector属性实例详解简介在Android项目中,我们都会大量使用selector状态选择器,使控件配合用户的操作展示不同的状态,提升用户的体验效果。一般体现在字体,背景的切换方面,我们可以动态的使用代码去设置,也可以使用selector状态选择器去快速实现,推荐使用selector状态选择器,因为它简单方便,复用性强。项目地址:DrawableDemo创建方式:...

2020-01-02 11:41:01 762

原创 Android:Shape属性实例详解

简介:1、支持的类型形状:rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等oval: 椭圆形,用得比较多的是画正圆line: 线形,可以画实线和虚线ring: 环形,可以画环形进度条2、支持的属性以rectangle为例,这种类型应该是我们使用的最多的类型了,一些控件的背景、布局的背景都可以使用它来完成。我们来看详细的介绍:solid: 设置形状填充的颜色...

2020-01-01 09:09:30 413

原创 Sqlcipher加密框架版本升级3.x to 4.x

Sqlcipher数据库加密框架是一个比较流行的Sqlite数据库加密框架,微信的WCDB数据库也是使用的此框架。由于历史原因,项目使用的Sqlcipher框架是3.0.x的版本,具体哪个版本都无从查找,因为是使用的源码。最近由于业务需要,项目要加入androidx的支持,发现Sqlcipher的3.0版本只能支持23以下目标版本的编译支持,于是升级Sqlcipher版本至4.0以上。于是……问题...

2019-11-08 11:44:58 3093

原创 深度系统搭建jdk开发环境

1、下载JDKhttps://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html建议使用JDK8的版本,开发安卓够用,版本比较稳定,具体用哪个版本看你自己的需求2、深度的图形化界面操作和Windows系统几乎一样,解压后放到自己认为合适的地方,我放在了usr/jdk目录下3、配置环...

2019-10-26 14:07:01 773

原创 Android Studio工程文件索引出错

某些Java文件显示莫名其妙的xml文件,包含未知的字符。在资源管理器中用其他工具打开对应的Java文件却是正常。clean、rebuild 都无法解决。解决办法:删除缓存目录下文件,即可解决问题。C:\Users\hongzhen(用户名)\.AndroidStudio3.5(你的studio版本)\system\caches...

2019-10-09 10:11:18 1660

原创 判断APP、Activity、Service是否前台运行工具类

/** * 判断当前APP是否在前台 * @return */ public static boolean isRuningProcess(){ ActivityManager activityManager = (ActivityManager) BaseApplication.getApplication().getSystemServi...

2019-09-17 11:50:39 219

原创 ERROR: The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.

原因:是这里出问题了 instrumentTest.setRoot(‘tests’) ,你可能在升级 Android Studio 时更新了项目的 gradle 配置,这里的配置中 instrumentTest 已被弃用,不适用于现在的 gradle 版本。解决办法:用 androidTest 替换 instrumentTest,编译运行即可。...

2019-08-26 10:32:11 457

原创 error:Duplicate key BuildableArtifactImpl (file collection)

productFlavors { //在这里添加你所有需要打包的渠道 main{ buildConfigField "boolean", "PRODUCT_DEMO", "false" } demo{ buildConfigField "boolean", "PRODUCT_DEMO", "true" }}多渠道编译时,如果...

2019-08-20 15:39:30 1469

原创 宽高自适应的ImageView控件

package com.hisign.wencai.widget;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android....

2019-08-06 16:20:46 239

原创 Arouter异常汇总

常见异常: 1、编译异常:Error: Program type already present: com.alibaba.android.arouter.routes.ARouter$$Group$$arouter,查看所有moudle中的路径配置, 解决:是否包含arouter,Arouter中的AutowiredServiceImpl类已经使用了/arouter/servic...

2019-08-01 10:57:53 2815

原创 点击APP图标重新启动程序,无法返回之前操作页面的解决方法

测试的例子中有三个activity,启动顺序为SplashActivity-LoginActivity-MainActivity。点击APP图标重新启动程序,无法返回之前操作页面,这个现象在Realese版本出现,debug版本不出现。https://github.com/qiantanlong/APPLaucherDemo这个demo中验证了重新启动APP后的task任务栈的情况,有兴趣...

2019-06-14 14:23:52 1186

原创 Exception和Error的基础知识

#概念Throwable类,只有Throwable类的实例才可以抛出或者捕获,它是Java异常处理机制的基类,Exception和Error都继承与它。Exception和Error是Java对于异常处理的两种方式,只是在具体使用场景和功能上有所差别。##ExceptionException是java程序运行中可预料的异常情况,可以获取到这种异常,并且对这种异常进行业务外的处理。分为检查性异...

2019-05-26 14:31:56 280

原创 使用BitmapFactory的decodeResource方法加载图片的坑--被缩放问题

一、场景介绍:需要原始比例加载一个张图片,并准确控制其缩放的比例大小,测试的设备分辨率为1280*800和1920*1080两种分辨率。加载方式是BitmapFactory.decodeResource(getResources(), R.drawable.finger)生成bitmap,然后交给imageview进行加载。这个坑就是:同样的代码获取的bitmap,得到的高和宽却不同:一个是6...

2019-02-19 15:57:20 19089

原创 Windows下Flutter开发环境搭建

一、下载flutter1、方式一:使用git下载git clone -b beta https://github.com/flutter/flutter.git 从Git服务器拉数据的截图。Git默认的HOME和~路径一般都是C:\Users\用户名,如果你修改了Git的默认路径,就自己去找。下图是下载后的flutter文件夹。2、方式二:直接下载zip包,解压就可以使用...

2018-12-28 17:39:35 567

原创 APK Analyzer的使用

APK Analyzer是Android studio 2.2 版本后自带的APK分析工具。这是一个专门分析 apk 的神器,省去反编译的繁琐操作。一、如何使用这个工具分析一个APK1、可以在Android Studio中直接双击一个APK文件,就可以打开APK Analyzer窗口2、可以直接将APK文件拖到Android Studio的工作窗口中3、通过build—&gt;...

2018-12-20 17:06:12 3226 1

原创 引用阿里的路由框架——V4包冲突的解决办法

由于导入阿里的路由框架,出现编译问题,主要是V4包的版本不统一。编译的保存信息: gradle文件:报错信息:WARNING: Conflict with dependency 'com.android.support:support-media-compat' in project ':LibraryDrawfingerFeature'. Resolved vers...

2018-12-18 17:17:07 523

原创 创建JitPack上的开源库--支持Gradle依赖

一、常用的Maven库的方案介绍1、什么是JitPackJitPack是一个网站,它允许你把git托管的java或android项目(貌似目前仅支持github),轻松发布到jitpack maven仓库上。2、什么是BintrayBintray是一个网站,它允许你创建私有maven、rpm、deb等仓库。你还可以在Bintray上提交审核,把已经发布到bintray仓库上的库...

2018-11-15 14:17:41 1168

jdk1.8.0源码.rar

jdk1.8源码下载,JavaFX在Java SE 7 Update 6之后正式并入Java SE API之中,从此可以直接使用javac与java来编译与执行JavaFX程序。

2020-01-07

实现自定义view拖动、点击效果

方式一:设置View的setOnTouchListener(),重写onTouch方法;方式二:实现view的onTouchEvent()方法。实现自定义view的拖动、点击事件。

2018-09-03

空空如也

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

TA关注的人

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