生成二维码并将logo图片合成到二维码上main 合成logo
生成二维码并将logo图片合成到二维码上main 合成logo
选择图片主要设计到状态管理,鸿蒙中状态管理是比较复杂而且又是必备技能,先看效果图: 首先定义图片数据实体类: SelectImagePage SelectImageSheet...
Flutter 简单封装http网络框架[https://www.jianshu.com/p/0e9ce0a78ee0]Flutter 实现下拉刷新和自动加载更多[https...
Flutter 简单封装http网络框架[https://www.jianshu.com/p/0e9ce0a78ee0]Flutter 实现下拉刷新和自动加载更多[https...
Flutter 实现下拉刷新和自动加载更多[https://www.jianshu.com/p/9b074b06565b]Flutter Banner封装[https://w...
Android App生命周期总结流程图
针对Android Q , 在公共目录指定文件夹下创建了文件,比如在“Download/TestDir”中创建了文件,如果在手机自带的文件管理器中手动删除之后,不会再在该目录下创建相同文件名的文件?这是为什么?有解决方案吗?
Android 11 公共目录Download文件操作因公司需求在不申请读写权限的情况下 下载和上传Download里面的文件。 这里采取SAF方式 一:选择文件上传 创建指定文件夹创建文件夹我是直接用绝对路径创建的,文件夹可以...
synchronized 实现原理 要理解清楚synchronized的原理首先要理解对象头和Monitor。当某个线程执行到 synchronized也就是monitore...
概述 AQS 全称是 Abstract Queued Synchronizer,即抽象队列同步器,AQS内部基于CAS、LockSupport、自旋和双端等待队列实现的多线程...
最近也尝试是Hilt ,也是遇到这个问题,和一样的解决办法,但是感觉有种怪怪的
Hilt模块化报错ClassCastException在使用多模块的时候,把Application放在公共模块里面,运行的时候报错 把Application放到app模块下就可以了
Java内存模型是什么 Java 内存模型翻译自Java Memory Model,也称Java多线程内存模型,简称:JMM,它是为了解决Java多线程并发、CPU 高速缓存...
垃圾回收(Garbage Collection,GC) 指的是JVM的自动内存管理机制,即:当堆内存中分配的对象所占的内存不再被引用时,就会触发JVM自动释放内存以让出对象所...
@HarryChen
project.rootProject.subprojects { Project target ->
target.afterEvaluate { Project innerProject ->
def hasAppPlugin = innerProject.plugins.hasPlugin(AppPlugin.class)
def hasLibPlugin = innerProject.plugins.hasPlugin(LibraryPlugin.class)
String projectName = innerProject.getName()
Set<File> source = sourceSets.get(projectName)
if (source == null) {
source = new HashSet<>()
}
if (hasAppPlugin) {
innerProject.getExtensions()
.getByType(AppExtension.class)
.getSourceSets().each {
if (!it.res.name.contains("test")) {
source.addAll(it.res.srcDirs)
source.addAll(it.assets.srcDirs)
sourceSets.put(projectName, source)
}
}
}
if (hasLibPlugin) {
innerProject.getExtensions()
.getByType(LibraryExtension.class)
.getSourceSets()
.each {
if (!it.res.name.contains("test")) {
source.addAll(it.res.srcDirs)
source.addAll(it.assets.srcDirs)
sourceSets.put(projectName, source)
}
}
}
}
}
project.gradle.buildFinished {
sourceSets.keySet().each {
mLogging.error("sourceSets>>>> Module Name: ${it}")
sourceSets.get(it).each {
mLogging.error("sourceSets: ${it.absolutePath}")
}
}
}
我是这样写的
Gradle插件在包体积优化中的应用在安卓app包里面,占体积的主要是三块 一块是dex文件,也就是java/kotlin代码,这块基本上都是用了Proguard去 压缩(Shrinking)、优化(Optim...
泛型的目的 在编译阶段完成类型的转换的工作,避免在运行时强制类型转换而出现ClassCastException,类型转化异常。 泛型的使用 泛型类 将泛型定义在类上 需要注意...
如果是多模块开发你这个只能拿到app模块的资源,其他模块拿不到
Gradle插件在包体积优化中的应用在安卓app包里面,占体积的主要是三块 一块是dex文件,也就是java/kotlin代码,这块基本上都是用了Proguard去 压缩(Shrinking)、优化(Optim...
程序运行时,内存到底是如何进行分配的? 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,下面通过一张图体现了字节码是如何被加载到这些区域来分析Ja...