- 博客(69)
- 资源 (7)
- 收藏
- 关注
原创 HarmoneyOS2.0 ButtomNavigation+PageSlider实现底部导航
第一步看效果是不是需要的:第二部:添加依赖在entry目录下的gradle文件中添加如下了依赖//底部导航栏implementation "io.openharmony.tpc.thirdlib:BottomNavigationViewEx:1.0.1"第三部:新建blility_index.xml<?xml version="1.0" encoding="utf-8"?><DependentLayout xmlns:ohos="http://sch
2021-05-10 09:57:48
706
2
原创 DevEcoStuido2.0 Mac版鸿蒙工程无法识别顽固问题报错解决方案
错误信息:<ij_msg_gr>Project resolve errors<ij_msg_gr><ij_nav>/Users/mac/Desktop/hmsspace/MyApplication2/build.gradle<ij_nav><i><b>root project 'MyApplication2': Unable to resolve additional project configuration.</b>&l
2021-01-13 11:05:26
1268
1
原创 Dialog中Context内存溢出最终解决方案
gralde添加api 'com.lai.weavey:loadinglayout:1.3.1'xml布局最外层添加<com.weavey.loading.lib.LoadingLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/loadin.
2020-10-30 18:47:50
681
转载 Mac谷歌浏览器添加JSONView的插件以提高开发的效率
1、打开https://github.com;2、搜索 jsonView 链接:https://github.com/search?utf8=%E2%9C%93&q=jsonview;3、选择需要的插件(gildas-lormeau/JSONView-for-Chrome);4、点击【Download Zip】,插件下载完成,解压缩到相应目录(:\Download);5、安装,打开chrome - 扩展程序 (地址栏输入chrome://extensions/);6、右上角,选中
2020-10-20 22:39:42
614
原创 创建SpringBoot遇见 Unable to import maven project: See logs for details
Inteliij IDE 版本号 2018.3.6Maven版本 3.6.3建立SpringBoot单体应用后 导入依赖出现Unable to import maven project: See logs for details的问题 始终无法导入,查看配置 镜像等都没有问题解决方案:Help - show log in finder 查看日志2020-10-20 16:15:08,155 [ 83875] ERROR - #org.jetbrains.idea...
2020-10-20 16:36:25
526
原创 ARTHook非侵入式之图片检查
Bitmap内存模型API10之前Bitmap自身在Dalvik Heap中,像素存在Native API10之后像素也存放在Dalvik Heap中 API26之后像素存在Native待续。。。。
2020-10-15 14:45:15
757
原创 App体系化优化之内存优化(Memory Analyzer Tool + Memory Profiler)
说明:如果只是单存的内存抖动,AndroidStudio的Memory Profiler就可以分析了,具体分析过程已经有很多文章说明了,这里就不赘述,接下来要说的是内存泄露的追查。1.MAT下载MAT 下载地址:https://www.eclipse.org/mat/downloads.php下载版本:Mac OSX (Mac/Cocoa/x86_64)2.MAT安装和启动下载完成,在Downloads目录下找到MemoryAnalyzer-1.9.0.20190605-macosx.c
2020-10-10 10:19:50
359
原创 App体系化优化之启动优化(二工具的使用)
概述TraceView是Android平台配备一个很好的性能分析工具,它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到方法。关于它的介绍,配置,使用相信网上有大篇幅的文章介绍,我就不赘言了。既然是启动的优化 那么我们就直接对启动的部分进行性能的检测第一步:在Application中埋点,指定输出xx.trace文件 @Override public void onCreate() { super.onCreate(); Debug
2020-09-30 16:09:36
246
原创 App体系化优化之启动优化(一启动时间分析)
app的启动模式分为三种:1.冷启动冷启动耗时最久,衡量的保准最多Click Event - IPC - Process.start - ActivityThread - bindApplication - LifeCycle - ViewRootImpl用户在桌面点击app 发起一个IPC操作,通过Process.start 然后创建ActivityThread,是每一个单独app进程的入口,消息循环的创建,然后通过反射创建application调用于application相关的生命周期,
2020-09-30 11:30:50
986
1
转载 高效加载Bitmap
一、概述 在Android开发中,我们经常与Bitmap打交道,而对Bitmap的不恰当的操作经常会导致OOM(Out of Memory)。这篇文章我们会介绍如何高效地在Android开发中使用Bitmap,在保证图片显示质量的前提下尽可能占用更小的内存。1. 什么是Bitmap Android中的Bitmap对象是对位图的抽象,它可以从文件系统、资源文件夹、网络等各种不同的来源获取。位图可以看做是像素点的集合,本质上就是通过一系列二进制位来描述一张图片,具有不同色彩格式的位图使用...
2020-09-27 16:49:56
292
原创 Android View ScrollView等转为BitMap包含看不见的情况的解决办法
package com.cfs.app.utils;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.drawable.Color.
2020-09-25 14:27:18
858
原创 Spring+SpringMVC+Mybatis纯手工搭建
数据库:工程目录八大配置文件源码:pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://ma
2020-08-13 16:59:24
152
原创 MySql连接问题
问题:Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'解决方案: 解决办法是打开终端运行sudo chown -R mysql /usr/local/mysql/data即可。然后新建1045 - Access denied for user 'root'@'localhost' (using password: YES) NO解决方案:苹果->.
2020-08-12 10:38:40
145
原创 华为手机提示 系统发现xxx删除照片提示 如何不提示,且不保存在最近删除列表
原因:删除图片后 习惯性的发送了广播通知 系统服务更新系统相册,由于是删除图片,所以系统就将图片保存在最近删除列表,防止用户误删。虽然我们无法拦截这个系统进程的弹框,但是咱们可以不通知啊~~~Uri uri = Uri.fromFile(file);context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));...
2020-08-11 10:38:55
3986
2
原创 Inteliij Idea 搭建Spring+SpringMVC+Mybatis工程 学习笔记
使用Maven构建Spring+SpringMVC+Mybitys工程1.环境检查2.Inteliij Idea工具准备 旗舰版3.MySql4.创建Web工程1)新建工程选择Maven,选择SDK版本,勾选骨架,选择maven-archetype-webapp骨架,next设置地址和模块配置Maven仓储,选用自带3.3.9 自己装的3.6.3报错了~ 勾选覆盖,选择自己设置的仓储设置,以及本地仓储路径镜像是阿里的<localR.
2020-08-10 14:47:49
283
原创 SSM搭建之 Maven的安装和配置
1.首先去官网下载http://maven.apache.org/download.cgi解压缩后放在某个盘的根目录下(目录越少越好,英文路径)2.配置确保jdk环境变量正确配置maven环境变量M2_HOMEF:\apache-maven-3.6.3path %M2_HOME%\bin验证至此maven就安装完毕了。Maven仓库分类:本地仓库远程仓库:中央仓库,私服,其他公共仓库diea集成开发环境中包含(工程+pom.xml)...
2020-08-09 16:57:41
214
原创 Inteliij 使用Servlet3.0 新建Servlet
1 创建一个web项目File -> New Project -> 输入项目名称“Demos” ,选择Project SDK为1.7 -> Next -> Finish2 创建一个Module鼠标点中项目名称demos -> 右键选择New,选择Module勾选“Web Application” -> 确认已勾选“Create web.xml”输入Module名称“firstweb” -> 点击Finish3 创建好的web项目...
2020-08-09 11:38:15
216
原创 Inteliij控制台中文乱码
如果是控制台出现乱码,我们需要配置两个地方第一:-Dfile.encoding=utf-8第二:然后重启Inteliij即可
2020-08-09 08:02:40
346
原创 Android-控件架构-Dialog
public class VersionUpdateDialog extends Dialog { public VersionUpdateDialog(@NonNull Context context) { super(context); } public VersionUpdateDialog(@NonNull Context context, int themeResId) { super(context, themeResId); .
2020-08-07 10:02:49
162
原创 项目管理图标归纳(概要)
项目管理表:1.工作分解结构图 WBS2.责任矩阵图 RAM3.关键路径图 CPM4.甘特图 Gantt Chart项目管理表:1.工作陈述表2.质量计划表3.预算组成表4.预算控制表5.风险识别表6.风险定性表7.风险定量表8.风险应对表9.物料采购表10.服务采购表其他图中:1.燃尽图2.燃起图3.用户故事地图4.累计流量图项目管理九大知识领域1.项目范围管理2.项目时间管理3.项目成本管理4.项目.
2020-08-03 09:53:07
1182
原创 Android开发注意事项
本文作为个人笔记,吸取采纳各位大神的精华,作为个人开发注意事项,仅在优快云保存。1.Context的用法举例:单利模式(非线程安全)public class Singleton { private static Singleton instance; private Context mContext; private Singleton(Context context) { this.mContext = context; } p.
2020-07-02 10:00:26
342
原创 360外置插件无法加载&360RePlugin AndroidX化后的坑
具体的技术文档可以直接搜索360RePlugin官方技术文档,本文只解决问题问题一:classpath 'com.android.tools.build:gradle:3.1.4'和官方文档一样配置的,但是使用的是外部插件加载也就是说我们把插件plugin下载到sdcard,然后在RePlugin.intsall("xxx")但是发现加载成功了,然后PluginInfo pi = RePlugin.install(fileName);这里我说明下repload最好使用线程,不然直
2020-06-14 10:00:01
1630
1
原创 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment
废话不多说了,什么重写方法都不好使,直接一点,如果你要刷新,那么你用错了Adapter 不是FragmentPagerAdapter而是直接使用FragmentStatePagerAdapter就OK了。一开始只要private List<Fragment> mFragments = new ArrayList<>();最后加载完毕之后private void freshFragmnet(){ mFragments.clear(); mFragm.
2020-06-08 15:33:35
258
原创 华为DevEco Studio采坑记录 Gradle sync failed: Gradle xxx already disposed
使用华为DevEco Studio导入AndroidStudio的时候出现了 Gradle sync failed: 'Gradle' xxx already disposed 异常,我第一反应就是删除.idea 和 .iml文件,然后Invalidate Caches/Restart,结果更好了,连java或者Android工程都识别不了了。经过总结得出以下几个解决方案,供大家参考。方法一:工程文件可能存在copy过来的,而AndroidStudio会自动构建project目录下的 .iml文件.
2020-06-06 10:52:12
3265
原创 架构日记(十)Sophix-Hotfix集成中,友盟和阿里系jar包冲突的解决方案-离线集成
友盟推送SDK依赖部分阿里系SDK功能,其中使用并封装了TNet SDK、Network SDK、ACCS SDK三个SDK,如果与以上三个SDK冲突,必须去掉您自己使用的三个中的SDK,同时使用了alicloud httpdns SDK、alicloud utls SDK、utdid SDK ,如果与以上三个SDK冲突,您可以去掉冲突中的一个即可(注意版本兼容)。感谢您的支持与厚爱!友盟Android Push SDK与阿里集团其他库出现集成冲突的解决办法引导Android Push当前使用到的阿里
2020-06-03 18:46:14
616
原创 架构日记(八)Android热修复框架的集成
至于AndFix和SoPhix的原理,机制我就不赘言了,网上大把的资料,阿里云上也有非常详细的说明。本文注意介绍集成的步骤一· AndFix集成config.gradle dependencies = [ ... andfix : "com.alipay.euler:andfix:0.5.0@aar" ]base.gradleapi rootProject.ext.dependencies[
2020-06-02 11:03:52
227
原创 架构日记(七)Android屏幕适配分辨率限定符与smallestWidth 限定符适配原理
最终效果:在 Android Studio 中安装 ScreenMatch 插件下载插件 ScreenMatch 到本地,点击菜单栏上的 File -> Settings -> Plugins -> Install plugin from disk,然后选择我们刚刚下载的插件,最后点击 “OK”,重启 Andorid Studio 即可。如下在项目的默认 values 文件夹中需要一份 dimens.xml 文件新项目没有的话我这里提供一下<?xml ver.
2020-05-24 17:16:59
430
原创 架构日记(六)新建Gradle Task实现打包后上传到蒲公英
前面的文章中提到了脚本自动执行打包和安装,其实将脚本重组也是可以做到一键发布的,只是每一篇文章都有自己需要解决的问题,所以没有完全串起来实现一键打包发布。首先下面贴出蒲公英的官网地址https://www.pgyer.com蒲公英开放api地址https://www.pgyer.com/doc/view/api我们需要用到的蒲公英上传的post请求的地址https://www.pgyer.com/apiv2/app/upload剩下的细节可以自己去官网查看,接下来看代码吧
2020-05-22 15:11:46
506
原创 架构日记(五)多渠道打包配置
AndroidManifest.xml 里设置动态渠道变量<!--多渠道打包配置--> <meta-data android:name="UMENG_APPKEY" android:value="" /> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_
2020-05-22 11:45:31
278
原创 架构日记(四)命令行打签名包和Gradle DSL 自动化构建(未完)
首先来解决一些问题:本文是Mac下AndroidStudio的命令行打包 adb: command not found解决方案:打开Android Studio 启动终端 Terminal;echo $HOMEtouch .bash_profileopen -e .bash_profile//配置自己的环境变量export ANDROID_HOME=/Users/mac/Library/Android/sdkexport PATH=${PATH}:${ANDROID_HOM
2020-05-21 16:50:05
174
原创 架构日记(三)模块化结构中的RxJava+Retrofit的搭建MVP模式
说到RxJava,最先想到的就是观察者模式,对于rxjava2还不了解的朋友们,可以通过这个链接先去了解一下https://www.jianshu.com/p/cd3557b1a474老规矩先来看看工程结构首先我的项目中使用了两款很不错的插件 Android ButterKinfe Plugin Plus 和 MVPPlugin第一步导入依赖,在base的gradle中//RxJava+Retrofit+okhttp3 api rootProject.ext.depend.
2020-05-20 23:04:53
242
原创 CLEARTEXT communication to XX not permitted by network security policy 解决方案
请求框架搭建完,设置了BaseUrl开始访问,结果CLEARTEXT communication to XX not permitted by network security policy是我们的baseUrl因为是内部测试环境所以使用的是ip地址,或者http://原因:Android P系统限制了明文流量的网络请求,之下的版本没有影响,所以okhttp3会抛出该异常。解决方案1:https://解决方案2:res目录下新建<?xml version ="1.0" e
2020-05-20 09:59:05
10297
3
原创 架构日记(二) 模块化多Moudle下的gradle配置
新的工程建立,多个Moudle的gradle的管理就是一个很繁琐的问题。你有没有见过这样“The given artifact contains a string literal with a package reference 'android.support.v4.content'”之类的问题,各种v4 v7和androidx之间的冲突,或者依赖包版本不向下兼容,或者冲突包的问题?本文采用config.gradle来统一控制整个工程的各个依赖的版本控制。代替原来的在project-gradl
2020-05-19 11:28:11
414
原创 架构日记(一) 模块化多Moudle下的Application引用方式
传统的项目结构中Application毫无疑问,肯定是放在app目录下的。说一说我遇到问题的场景:本人正在base moudle中新建RxJava+Retrofit+OkHttp的请求框架式,在新建拦截器Interceptor的时候有一个地方需要用到Application。这就有点尴尬了呀。其实我们完全可以换一个思路嘛,Lib模块不就是要一个Application吗,给他~Moudle base作为一个基础库或者说是公共依赖包,所有的Moudle都是需要依赖它的,那么就来一个BaseAp..
2020-05-18 22:32:07
707
原创 模块通信模块间服务调用ARouter-IProvider
新建工程,首先来看一下工程结构模块化是一种思想:实现它的方式有组件化,插件化等等。(模块化,多分包dex,热修复,SPI(ARouter))关键词app是主工程,base是所有模块都需要依赖,其他的属于普通模块,功能单一。这样的结构比起传统的工程结构更加高内聚低耦合。模块之间的通信其实也可以采用EventBus来传递数据,需要回调数据的时候可以将xxEventBus定义成interface也是可以的。EventBus的缺点:1.一经发出所有的接收器都可以接受,功能较为单一。2.Eve
2020-05-18 15:50:59
2601
1
原创 QMUIAndroid2.0.0-alpha08 学习日记之 QMUIBottomSheet
效果:第一步:app gradledependencies{def qmui_version = '2.0.0-alpha08'implementation "com.qmuiteam:qmui:$qmui_version"implementation "com.qmuiteam:arch:$qmui_version"annotationProcessor "com.qmuiteam:arch-compiler:$qmui_version"}导入成功,之后的文章中导入步
2020-05-16 01:15:28
2249
1
原创 AndroidStudio 3.6 AndroidX迁移
基本要求:Android studio 版本升级到3.2.0 以上的版本,distributionUrl的版本升级为 4.10.1以上targetSdkVersion 28gradle 插件的版本升级为 3.2.0以上gradle.properties文件下android.useAndroidX=trueandroid.enableJetifier=true新建完毕后:做好备份最后将所有的android support改为androidx即可,编译也会报错,
2020-05-15 17:40:35
455
原创 Mac AndroidStudio执行 gradle assembleDebug --stacktrace 报出 bash: gradlew: command not found
依赖其他Lib的时候总是会出现冲突问题,这个时候为了方便分析一般Windows下我们都会在AS的命令行中执行 gradle assembleDebug --stacktrace,但是很多人会发现MAC下貌似报出bash: gradlew: command not found话不多少,直接上解决方案:macOS下使用gradlew命令需要再命令前加上././gradlew --in...
2020-05-05 18:56:49
2046
转载 各种Android UI开源框架集合
https://blog.youkuaiyun.com/weixin_38775077/article/details/80980564
2019-07-05 10:54:37
593
apkpatch-1.0.3.zip
2020-06-02
RxPermissionsDemo.zip
2019-06-28
AIDL小demo(解决Android5.0以上不可调用的bug)
2019-03-28
okhttp3.0+retrofit2.0 二次封装demo代码内有详细注解
2018-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人