- 博客(88)
- 资源 (8)
- 问答 (2)
- 收藏
- 关注
原创 单元测试,build.gradle中 testImplementation and androidTestImplementation的区别
在用Android studio 创建一个新项目的时候,会默认生成三个目录(每个目录都被称为是Source set(源码集合)): app/src* ├── androidTest/java (仪器化单元测试、UI测试,比如Espresso)* ├── main/java (业务代码)* └── test/java (本地单元测试,Junit4、mockito、Robolectric)这个androidTest 目录包含了触摸屏幕或者检查在屏幕上显示了什么的测试用例,在test目录下,..
2020-09-17 11:45:23 10747 2
原创 git 修改远程仓库地址的方法
公司技术高层领导换了,要搞革新。新的领导班子下,新的运维也要搞一下革新,比如,第一件事就是要搞Gitlab 服务升级,带来的是git远程仓库地址的变更。
2020-09-07 10:52:58 865
转载 Android-如何保证API接口数据安全
前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互。网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,也可以伪造请求去获取或攻击服务器;也对爬虫工程师来说是一种福音,要抓你的数据简直轻而易举。那我们怎么去解决这些问题呢?接口签名签名规则1、线下分配appid和appsecret,针对不同的调用方分配不同的
2020-08-27 17:39:37 1036
原创 By convention, the custom view (xxx) and the declare-styleable (xxxx) should have the same name
问题描述场景在lint的时候,可能有同学会遇到上面这样的提示。这是在自定义View的时候,取自定义属性的时候,可能会遇到的情况,意思是说,自定义View的名字应该和声明的样式有相同的名字。解决方式按照提示,把声明的样式名称改成和自定义View一样的名字即可。分析(关键)其实,这个也不是必须要这样做,只是这样做的好处是:取自定义属性的时候,能够自动以控件名称开始_xxx ,会有智能提示,方便查找属性。不一致的话,不会有智能提示,需要自己去查看自定义的属性都有哪些。 从这个...
2020-06-23 15:46:40 1214
原创 Android studio 提示 Field can be converted to a local variable
今天提到的点,很基础,大概就是:在定义的成员变量上面,可能会有提示:Field can be converted to a local variable意思就是 字段可以被转化成一个局部变量。如下图:这个case,网上一堆的解释,千篇一律,大部分只是在说如何去掉这个提示,解决方案有如下两种:1、@SuppressWarnings("FieldCanBeLocal")2、把全局变量删除,在使用的地方定义即可,不用全部都使用全局定义变量。以上这都不是重点,也不算完,需要我们进一步...
2020-06-12 16:30:06 11150 2
原创 Android studio3.5以后 格式化布局错乱的问题的解决办法
Android studio 3.5以后 在格式化布局的时候,默认会把布局中的View进行重新排序,乱的一笔,修改方式方式如下:我现在用的Android studio版本信息 如下,挺好用的。
2020-06-01 15:26:21 1059
原创 关于Webview的总结
1. 简介一个基于webkit引擎、展现web页面的控件a. Android 4.4前:Android Webview在低版本 & 高版本采用了不同的webkit版本的内核b. Android 4.4后:直接使用了Chrome内核2. 作用在Android客户端上加载h5页面 在本地 与h5页面实现交互 & 调用 其他:对url请求、页面加载、渲染、对话框 进行额外处理。Android与JS通过WebView互相调用方法,实际上是:Android去...
2020-05-29 17:00:32 178
原创 Android中 MultiDex的使用及原理(解决方法总数只能是65535的问题)
在了解MultiDex的使用及原理之前,需要先了解什么是dex.关于Android Dex 文件,请参考该文的描述。为什么要使用MultiDex 当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。但是在早期的Android系统中,DexOpt有一...
2020-05-28 18:18:28 2258 1
转载 浅谈 Android Dex 文件
概述为什么要了解 Dex 文件了解了 Dex 文件以后,对日常开发中遇到一些问题能有更深的理解。如:APK 的瘦身、热修复、插件化、应用加固、Android 逆向工程、64 K 方法数限制。什么是 Dex 文件在明白什么是 Dex 文件之前,要先了解一下 JVM,Dalvik 和 ART。JVM 是 JAVA 虚拟机,用来运行 JAVA 字节码程序。Dalvik 是 Google 设计的用于 Android平台的运行时环境,适合移动环境下内存和处理器速度有限的系统。ART 即 Android
2020-05-28 17:00:38 383
原创 Android Support Library 迁移至 AndroidX
在说迁移之前,先了解下 什么是Jetpack。Android JetpackJetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。Jetpack 包含与平台 API 解除捆绑的androidx.*软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。Jetpack 库在an...
2020-05-28 15:39:37 353
原创 Android Gradle 插件版本说明 以及 gradle插件版本和gradle版本对应关系
Android Studio 构建系统以 Gradle 为基础,需要搞清楚gradle插件版本和gradle版本的区别以及关系1、gradle-wrapper.properties 文件 distributionUrl所指定的是gradle 版本 distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip2、build.gradle(Project:xxxx)文件 ...
2020-05-28 10:48:22 5162
原创 WARNING: The `android.dexOptions.incremental` property is deprecated and it has no effect
在Build项目的时候,会出现一个提示:意思是android.dexOptions.incremental属性已被弃用,在build.gradle中去掉incremental true 属性,然后同步一下就行了,如下图
2020-05-27 10:58:05 508
原创 Android Studio升级3.6.2 Build窗口提示语出现中文乱码问题的解决方式
Android Studio升级3.6.2 Build窗口提示语出现中文乱码,搜索了一堆,经过实验,最终解决方案如下:在Android Studio中双击Shift或者点击顶部全局搜索"Edit Custom VM Options"点击进入 studio64.exe.vmoptions 文件,在文件中添加如下一条配置-Dfile.encoding=UTF-8 如下图:然后重启 即可解决。...
2020-05-26 15:34:49 750
转载 Java-堆外内存
堆外内存一直是Java业务开发人员难以企及的隐藏领域,究竟他是干什么的,以及如何更好的使用呢?那就请跟着我进入这个世界吧。一、什么是堆外内存1、堆内内存(on-heap memory)回顾堆外内存和堆内内存是相对的二个概念,其中堆内内存是我们平常工作中接触比较多的,我们在jvm参数中只要使用-Xms,-Xmx等参数就可以设置堆的大小和最大值,理解jvm的堆还需要知道下面这个公式:...
2020-04-17 18:24:55 1012
原创 Android-清晰明了的APK反编译之路
Android反编译-我们平时有没有通过反编译别人的APK 来进行学习的习惯呢?反编译好处多多,下面就总结一下,反编译所需要的工具及步骤:1 要准备的三个工具 apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件 dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件) jd-gui:查看2中转换后的jar文件,即...
2020-04-13 17:06:17 271
转载 两张图看懂Android开发中MVC与MVP的区别
原文链接:https://blog.csdn.net/u010072711/article/details/77132403看了很多文章,没有很好的文章能简明扼要的说清楚Android开发中MVC和MVP的区别。MVC很早就出来了,之前广泛用于JavaWeb开发中,MVC也可以用来开发Android,但是有些水土不服!1、MVC结构示意图————- 点击打开大图 ————-2、MV...
2020-04-10 12:09:14 403
原创 Java基础-关于抽象类和接口体会
大家对抽象类和接口,一定并不陌生,在工作当中,天天都能用到,写这篇总结,就是希望跟她们更加熟悉、知根知底。不要成为最熟悉的陌生人。1、关键字 抽象类:abstract 接口:interface2、抽象类描述关于抽象类的使用特点: 1.抽象类不能有对象,(不能用new此关键字来创建抽象类的对象);2.有抽象方法的类一定是抽象类,但是抽...
2020-04-09 17:49:03 327
原创 关于 RecycleView 点击事件接口的定义
RecycleView 的点击事件,一般是通过定义接口实现,接口定义如下:/** * 一般的RecycleView点击事件接口 * * @param <K> 数据源 */public interface CommonOnRecycleViewItemClickListener<K> { void CommonOnRecycleViewItemCli...
2020-04-09 17:41:49 256
原创 Android studio 3.1以后 全局替换方法
在项目中,如果修改了某个工具类的参数,比如去掉了一个参数,那整个项目中需要调整的,真的是太多了。Android Studio 具备全局搜索替换的功能,使用方式如下:第一种: 快捷键:Ctrl + Shift + R第二种:Edit —— Find —— Replace in Path...
2020-01-15 14:02:05 1064
原创 Android Lint 代码提示之: StringBuilder 替换 StringBuffer
StringBuilder StringBuffer是Java的基础。今天在Android lint代码的时候,发现了修改提示。记录下,作为总结。先看代码段: byte[] byteArray = inStr.getBytes(StandardCharsets.UTF_8); byte[] md5Bytes = md5.digest(byteArray); ...
2019-12-25 14:24:05 643
原创 Android 关于apktool 工具的介绍
最近通过反编译一些知名的APP,学习了别人比较好的布局方式、编码思路,收获比较大。这里提一下反编译工具apktool。
2019-12-19 17:31:57 969
原创 ADB 最常用命令集合及各种问题解决方式
ADB是什么Adb的全称为Android Debug Bridge:android调试桥梁。常用命令 基本前提操作 adb root (获取手机root权限)adb remount (重新挂载系统分区,使系统分区重新可写)adb shell (进入目标设备的Linux Shell环境) adb查看连接的设备 C:\Users\dddd>ad...
2019-11-05 16:58:29 1424
原创 Android 布局背景-重复使用某个背景图的实现方式
有时候,我们的设计需要在一个布局文件中重复的使用某个图片,作为一个布局区域的背景图。如何实现呢?可以通过android:tileMode="repeat" 属性来达到,具体做法是:1、在drawable文件夹下创建一个资源文件repeat_bg.xml,里面的android:src属性设置成要重复展示的图片。<?xml version="1.0" encoding="utf...
2019-08-22 14:41:11 1900
原创 Android 透明度、颜色值的理解
我们画布局的时候,对于给控件设置颜色值的环节,应该是最基础、最常见的操作了。其中颜色值的表述方式,我通过下面一个示例截图来全面的认识一下(接下来请看效果图,主要思考红色剪头所指的地方:背景50%透明度,文字不透明,如何实现效果),给你10秒钟的时间...自觉默认倒计时开始哈....好了,倒计时结束了,请结合你的方案,然后贴出来我的方式,看哪个更好:首先这个地方需要一个TextVie...
2019-06-17 19:22:22 1649
原创 Android 关于组合控件(自定义控件等)中自定义属性,通过getDimension后 设置字体大小比实际要大很多的问题分析
今天整理了一下项目中经常使用的组合控件,对属性进行了提取,扩展,尽量使这个组合控件更灵活、通用。但过程当中,遇到一个问题:设置字体大小比预计的要大很多。我先列出来自定义属性基本的使用步骤(很熟悉这个过程的朋友可以忽略下面这几个步骤,直接看问题分析部分)1、抽取自定义属性tsc_TextSize到attr.xml中<declare-styleable name="MTopSe...
2019-05-20 15:25:23 2398 2
原创 Android RecyclerView 提示No adapter attached;skipping的问题分析
项目里面,经常会用到RecyclerView ,其使用方式,想必大家也都清楚了。今天优化代码突然发现打印的信息里面有:--error RecyclerView: No adapter attached; skipping layout ;可是APP并没有因此崩溃,加上项目也比较紧,就没太注意这一块。现在有点时间了,发现了这个error提示,虽然不崩溃,但看到error信息,还是很不爽的,想...
2019-01-09 21:03:10 18971 4
原创 Android Studio编译问题-Error:Could not find org.jetbrains.trove4j:trove4j:20160824
今天早上打开AS,发现项目编译不通过了。。。提示Error:Could not find org.jetbrains.trove4j:trove4j:20160824Error:SSL peer shut down incorrectly真莫名其妙。。。查阅资料,提供的解决方式大致有以下几种:1、在buildscript中加上这个 jcenter()buildscript...
2019-01-08 11:53:44 18850 5
原创 关于Andriod org.gradle.api.tasks.TaskExecutionException: Execution failed for task 问题及解决办法
今天打开AS,突然发现项目跑步起来了,报一堆编译错误,错误大致信息如下:org.gradle.api.tasks.TaskExecutionException: Execution failed for task(省略若干无用信息)仔细看完之后,这一堆红色的错误信息,没有什么明显的收获。。。解决步骤:在terminal中输入如下命令,得到较为详细的信息gradlew com...
2019-01-07 19:59:32 13496
原创 百度地图集成,开发版sha1和发布版sha1的获取方式
我们现在的项目需要使用百度定位,看百度的开发者文档,说先要有项目的SHA1值,分为两种:发布版SHA1、开发版SHA11、获取开发版SHA1,在项目如下图:2、获取发布版SHA1。进入jdk安装bin目录,执行语句:C:\Program Files\Java\jdk1.8.0_51\bin>keytool -list -v -keystore F:\Android-Proje...
2019-01-07 11:36:08 473
原创 AndroidStudio创建jniLibs文件夹添加jar包\so库
Eclipse中项目自带libs文件夹,用来放需要的jar包之类的。但通过Android Studio创建的项目并没有这个文件夹,所以需要创建,名字统一为jniLibs。这里提供两种方法:1、通过修改build.gradle文件(选择的是项目的gradle) 在android{} 里面,buildTypes{} 外面添加如下代码: sourceSets { m...
2019-01-07 11:07:07 6118
原创 Android Studio WebView 加载Baidu Map 遇到的问题及解决方案
背景: 最近项目中需要在APP中增加一个定位签到的功能。实现方式是通过WebView 加载一个网页,网页中集成了百度地图的定位功能。问题描述: 定位功能在IOS上面是可以的,在Android机器上定位却是不行。解决过程: 首先,Android WebView的基本 settings 等各种常规设置,都是有的,网上一大堆。这里列下我的:...
2018-12-18 10:59:14 1171
原创 Android -Is Library 类库引用需要注意的地方
在android 开发中,我们可能会把一个android工程-Properties-Android 下面的 “Is Library”勾选上,表示将该工程作为一个类库,来供其他android项目引用。举例:假设有类库项目A,需要引用A的另外一个android 项目B.那么在使用的过程中,需要注意两点:①、如果在B中需要使用A中的Activity(可能会有这种情况),那必须在B的清单文件中声明...
2015-06-09 11:58:06 1592
原创 Android ListView的适配器 Adapter 中GetView方法调用次数大于数据条数的问题
Android ListView的适配器 Adapter 中GetView方法调用次数大于数据条数的问题
2014-12-22 17:35:58 2147
原创 Java -Android 学习(第六天)
控件显隐性,android:gravity和android:layout_gravity 介绍 与 区别
2014-09-25 09:53:00 732
原创 Android 禁止息屏 保持屏幕常亮的方式
目录1、在onCreate()中添加如下一行限制2、在界面布局xml中顶层添加属性禁止息屏 保持屏幕常亮的方式 常用的有两种,如下: 1、在onCreate()中添加如下一行限制 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 对应的,显式的取消限制的方式是getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SC..
2021-01-04 11:16:07 5334 2
转载 Android -单元测试总结
介绍:1. local tests:*Unit tests that run on your local machine only. These tests are compiled to run locally on the Java Virtual Machine (JVM) to minimize execution time. *本地单元测试,直接运行在JVM上,不用运行在Android设备上,以最大限度的减少时间。Use this approach to run unit tests
2020-09-16 16:42:33 362
原创 Https 和HTTP的区别 对称加密 非对称加密
什么是HTTP?超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。发展历史:版本 产生时间 内容 发展现状 HTTP/0.9 1991年 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 没有作为正式的标准 HTTP/1.0 1996年 传输内容格式
2020-08-31 17:58:13 551
apktool_2.4.1.rar
2019-12-20
SQL 查询优化 嵌套查询
2013-12-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人