Android之综合
收录Android应用开发过程的一些问题,经验之谈
Sharknade
青菜豆腐,汝能持否?
展开
-
Jetpack之WorkManager(二)
文章目录前言一、自定义WorkManager二、WorkManager和Dagger总结前言前面已经学习了WorkManager的基本使用Jetpack之WorkManager(一),接下来我们学习如何自定义Manager。一、自定义WorkManagerhttps://medium.com/androiddevelopers/customizing-workmanager-fundamentals-fdaa17c46dd2https://medium.com/androiddevelop..翻译 2020-09-29 11:07:20 · 595 阅读 · 0 评论 -
Jetpack之WorkManager(一)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、WorkManager简介1.1 WorkManager是什么?1.2 WorkManager什么时候使用1.3 为什么使用WorkManager1.4 WorkManager怎么制定工作计划的二、如何使用WorkManager2.1 准备工作2.2 定义后台任务为"work"2.3 定义如何执行具体的"work"2.4 运行你的"work"2.5 "work"是如何运行的2.6 使用链实现多任务有序执行2.7 关注Work翻译 2020-09-27 13:47:24 · 714 阅读 · 1 评论 -
Android混合开发之WebView调用相机
文章目录前言一、H5页面的使用方式二、Android提供的支持1.WebView基本属性设置2.WebView实现调用相机的支持3.实现调用相机的代码总结前言最近有一个需求:H5通过标题input标签调用Android系统相机、相册的功能一、H5页面的使用方式<input type="file" accept="image/*" capture><input type="file" accept="video/*" capture>根据不同的accept的值,分别调用原创 2020-08-25 10:13:45 · 4552 阅读 · 0 评论 -
Android工具类之拍照、摄像和图片选择
文章目录一、权限动态申请1.EasyPermission的简单使用二、具体代码段1.拍照2.摄像3.图片选择4.图片、拍照多种选择混合使用三、注意点一、权限动态申请implementation 'pub.devrel:easypermissions:1.0.1'/** * 权限申请工具类 */public class PermissionsEasy extends EasyPermissions { private static final boolean ENABLED = tru原创 2020-08-25 09:51:46 · 1890 阅读 · 1 评论 -
Android之FileProvider的使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、FileProvider是什么?二、FileProvider使用步骤1.定义一个FileProvider2.指定可访问的文件3.获取指定文件的Uri4.授予临时权限给Uri5.提供Uri给其他App三、案例一、FileProvider是什么?FileProvider是一个ContentProvider的子类,它取代了“file://”形式的Uri 通过“content://”形式的Uri实现了App间的安全通信。conte原创 2020-08-24 19:45:25 · 5646 阅读 · 4 评论 -
Bitmap和Base64之间的转换及其注意事项
BitmapUtil工具类public class BitmapUtil { /** * bitmap转为base64 * @param bitmap * @return */ public static String bitmapToBase64(Bitmap bitmap) { String result = null; ByteArrayOutputStream baos = null; try原创 2020-08-24 17:52:58 · 2643 阅读 · 0 评论 -
Android Studio 之 Warning: debug info can be unavailable
问题描述Warning: debug info can be unavailable. Please close other application using ADB: Restart ADB integration and try again解决办法重新ADB所连接的手机参考链接原创 2020-06-28 12:20:26 · 698 阅读 · 0 评论 -
Android Studio 之 Could not find method viewBinding() for arguments
问题:最近想尝试一下google为我们提供的jetpack功能。在开始viewBinding时,报了如下错误:大意是说:找不到viewBinding这个方法我使用的AS的版本是3.5解决问题:升级AS版本到3.6.因为viewBinding功能是在3.5.6才变为AS的一部分...原创 2020-04-13 14:26:46 · 4080 阅读 · 0 评论 -
Android Studio 安装错误INSTALL_FAILED_TEST_ONLY
问题:Installation did not succeed.The application could not be installed: INSTALL_FAILED_TEST_ONLYInstallation failed due to: 'null'解决办法:在gradle.properties文件中加入android.injected.testOnly=false...原创 2020-04-13 12:43:01 · 609 阅读 · 1 评论 -
Android Studio编译问题之java代码修改必须clean或者rebuild
问题描述最近接手一个项目,比较奇怪,每次修改代码后,必须需要clean或者rebuild一下才能生效。我使用的开发AS的本是3.5.1版本,不存在install run配置以下面的为例:上面case是:我将源文件中的toast删除,但是class文件中还存在(感觉就是AS没有进行构建)问题解决办法该项的构建配置是: gradle插件版本:3.5.2 + gradle版本6.0...原创 2020-03-24 09:20:04 · 3689 阅读 · 8 评论 -
Android Studio编译错误之Build Config field cannot have a null parameter
问题:Build Config field cannot have a null parameter指定错误行,如上图所示。原因:local.properties文件中,没有声明变量 “CLENT_ID”。(注意local.properties文件是AS编译项目时,自动生成的)。具体操作如下图所示:...原创 2020-03-07 16:30:29 · 1908 阅读 · 0 评论 -
安卓APK瘦身
目录瘦身的意义瘦身的意义APK结构组成内容文件的存储格式瘦身方式之图片优化各种图片的优缺点webP转换工具谷歌官方转换工具或者Android Studio 选中图片 --> 右键 --> converts to webPPNG 压缩JPG压缩其他优化方式瘦身方式之资源压缩瘦身方式之其他优化冗余代码优化lint 工具检查...原创 2020-01-22 06:35:24 · 165 阅读 · 0 评论 -
Tinker热修复原理概述
目录背景主流实现方式类加载机制Tinker原理热修复的意义主流热修复技术类加载机制Tinker原理伪代码的实现原创 2020-01-21 06:35:30 · 514 阅读 · 0 评论 -
EventBus三之手写EventBus
目录项目模块描述eventbus_annotation模块eventbus_compiler模块eventbus模块代码传送门项目模块描述eventbus类图eventbus时序图eventbus_annotation 实现a)定义注解类Subscribe@Target(ElementType.METHOD) // 该注解作用在方法之上@Retention(Ret...原创 2020-01-16 18:36:30 · 572 阅读 · 0 评论 -
EventBus二之反射原理
目录1)新建Android Libray2)定义EventBus反射机制需要的元素3)实现EventBus核心类新建Android Libray定义EventBus反射机制需要的元素a. 添加注解类@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Subscribe {...原创 2020-01-16 16:27:45 · 299 阅读 · 0 评论 -
EventBus一之基本使用
常见事件传递方式EventBus是什么EventBus is a publish/subscribe event bus for Android and Java.EventBus使用场景a.简化组件间,组件与后台线程的通讯。b.解耦消息的发送方与接收方官方架构图github地址EventBus传送门implementation 'org.greenrobot:event...原创 2020-01-16 15:54:18 · 459 阅读 · 0 评论 -
组件化之实践(四)
模块间可以调用资源调用方法跳转参数处理ParameterManager1)单例2)缓存LRUCache组件间跳转核心技术是通过类加载机制组件间共享资源原创 2020-01-16 12:46:50 · 198 阅读 · 0 评论 -
组件化之路由架构设计与实现(三)
目录路由架构设计APT生成路由Group和Path类文件APT生成路由动态参数文件路由架构设计问题一 为什么需要组名分模块加载,利用这种“懒加载”模式,能够最大程度上减少内存的使用问题二 生成文件有什么作用生成的文件便于记录管理activity字节码对象组件化项目部署1)配置arouter_api/build.gradlea.定义ARouterLoadGroup...原创 2020-01-10 21:09:01 · 335 阅读 · 0 评论 -
组件化之组件通讯和APT、JavaPoet使用(二)
目录模块间交互APT介绍与使用APT高阶用法JavaPoet模块间交互常见的交互方式1)EventBus一对一通讯,会造成Bean对象泛2)反射技术 维护成本较高,高版本容易出现@hide限3)隐式意图 维护成本较高,action比较难以维护4) 广播 7.0后需要动态注册5)类加载器 需要全类名路径解决方案类加载模式public void jumpApp(Vie...原创 2020-01-10 21:00:51 · 435 阅读 · 0 评论 -
组件化之gradle配置(一)
目录gradle语法项目详细部署gradle语法开发环境 android studio 3.4.1gradle版本 5.1.1gradle是什么gradle在AndroidStudio中的书写在项目的主模块的gradle文件中写入如下代码:则会在控制台中输入如下日志信息:gradle在多模块代码中进行配置统一练习gradle准备:创建一个app项目,使得该项目包含...原创 2020-01-09 16:53:57 · 1029 阅读 · 1 评论 -
android 9.0之无法进行http网络请求访问
最近在做一个建议的视频播放器,发现在9.0的设备上,播放不了http的视频资源:http://chuangfen.oss-cn-hangzhou.aliyuncs.com/public/attachment/201805/100651/201805181532123423.mp4解决办法:step1:在清单文件的Application节点下声明一个android:networkSecur...原创 2019-11-24 11:58:34 · 840 阅读 · 1 评论 -
Android编译错误之Please specify proper '-jvm-target' option
最近在使用android SDK中的WorkManager,但是在编译时报如下错误:Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper ‘-jvm-target’ option解决办法如下:...原创 2019-11-24 11:46:13 · 736 阅读 · 0 评论 -
Android Studio之 Gradle's dependency cache may be corrupt
问题今天android studio导入新项目时,编译报错 Gradle’s dependency cache may be corrupt解决办法将上图中 https 改为 http ,重新编译,即可原创 2019-07-05 10:24:14 · 92 阅读 · 0 评论 -
No slave process to process jobs, aborting
No slave process to process jobs, aborting最近在android studio上 运行项目时,发现编译没有通过,报了如下错误:No slave process to process jobs。查了网上的资料说–重启android studio 即可 具体错误截图,如下: 操作方式:重启android studio(为了确保一次重启 就好,我清空了一...原创 2018-09-10 11:58:34 · 561 阅读 · 0 评论 -
Gradle之Could not find com.android.tools.buildgradle3.0.0. Searched in the followi
Could not find com.android.tools.buildgradle3.0.0. Searched解决办法:这是因为在gradle中的repositories 缺少了 ‘google() ‘代码buildscript { repositories { google() //在代码中增加该行即可 jcenter() ...原创 2018-09-04 12:23:21 · 8536 阅读 · 3 评论 -
DexArchiveMergerException: Unable to merge dex
DexArchiveMergerException: Unable to merge dex最新在做项目的时候遇到 DexArchiveMergerException: Unable to merge dex的报错。具体报错信息如下:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':comvie...原创 2018-09-01 09:30:02 · 532 阅读 · 0 评论 -
热修复
热修复技术Dexposed、andFix (阿里) 从C底层二进制进行处理的thinker (腾讯) Java的加载机制入手处理的热修复的定义通常情况下,修复app的bug是通过发布新版本进行。热修复提供了一种在现有安装程序上进行修复bug bug一般会出现在某个类的某个方法地方。 如果我们能够动态地将客户手机里面的apk里面的某个类给替换成我们已经修复好的类。修复前的工具准备原创 2017-10-25 06:34:41 · 243 阅读 · 0 评论 -
Warning:Conflict with dependency 'com.android.support:support-annotations'
今天在导包的时候,遇到一个问题,具体信息如下:Warning:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.3.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-tes转载 2017-11-01 21:53:03 · 256 阅读 · 0 评论