自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 652 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 1169 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 630

转载 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 570

原创 创建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 455

原创 ARTHook非侵入式之图片检查

Bitmap内存模型API10之前Bitmap自身在Dalvik Heap中,像素存在Native API10之后像素也存放在Dalvik Heap中 API26之后像素存在Native待续。。。。

2020-10-15 14:45:15 701

原创 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 316

原创 App体系化优化之启动优化(二工具的使用)

概述TraceView是Android平台配备一个很好的性能分析工具,它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到方法。关于它的介绍,配置,使用相信网上有大篇幅的文章介绍,我就不赘言了。既然是启动的优化 那么我们就直接对启动的部分进行性能的检测第一步:在Application中埋点,指定输出xx.trace文件 @Override public void onCreate() { super.onCreate(); Debug

2020-09-30 16:09:36 214

原创 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 955 1

转载 高效加载Bitmap

一、概述 在Android开发中,我们经常与Bitmap打交道,而对Bitmap的不恰当的操作经常会导致OOM(Out of Memory)。这篇文章我们会介绍如何高效地在Android开发中使用Bitmap,在保证图片显示质量的前提下尽可能占用更小的内存。1. 什么是Bitmap Android中的Bitmap对象是对位图的抽象,它可以从文件系统、资源文件夹、网络等各种不同的来源获取。位图可以看做是像素点的集合,本质上就是通过一系列二进制位来描述一张图片,具有不同色彩格式的位图使用...

2020-09-27 16:49:56 248

原创 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 798

原创 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 124

原创 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解决方案:苹果-&gt.

2020-08-12 10:38:40 115

原创 华为手机提示 系统发现xxx删除照片提示 如何不提示,且不保存在最近删除列表

原因:删除图片后 习惯性的发送了广播通知 系统服务更新系统相册,由于是删除图片,所以系统就将图片保存在最近删除列表,防止用户误删。虽然我们无法拦截这个系统进程的弹框,但是咱们可以不通知啊~~~Uri uri = Uri.fromFile(file);context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));...

2020-08-11 10:38:55 3717 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 255

原创 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 190

原创 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 194

原创 Inteliij控制台中文乱码

如果是控制台出现乱码,我们需要配置两个地方第一:-Dfile.encoding=utf-8第二:然后重启Inteliij即可

2020-08-09 08:02:40 318

原创 Inteliij 缺少javax包的支持 缺少servlet-api.jar

2020-08-09 00:21:27 139

原创 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 141

原创 项目管理图标归纳(概要)

项目管理表: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 1128

原创 Android开发注意事项

本文作为个人笔记,吸取采纳各位大神的精华,作为个人开发注意事项,仅在CSDN保存。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 320

原创 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 1587 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 236

原创 华为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 3085

原创 架构日记(十)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 583

原创 架构日记(八)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 204

原创 架构日记(七)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 403

原创 架构日记(六)新建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 467

原创 架构日记(五)多渠道打包配置

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 258

原创 架构日记(四)命令行打签名包和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 157

原创 架构日记(三)模块化结构中的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 223

原创 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 10173 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 381

原创 架构日记(一) 模块化多Moudle下的Application引用方式

传统的项目结构中Application毫无疑问,肯定是放在app目录下的。说一说我遇到问题的场景:本人正在base moudle中新建RxJava+Retrofit+OkHttp的请求框架式,在新建拦截器Interceptor的时候有一个地方需要用到Application。这就有点尴尬了呀。其实我们完全可以换一个思路嘛,Lib模块不就是要一个Application吗,给他~Moudle base作为一个基础库或者说是公共依赖包,所有的Moudle都是需要依赖它的,那么就来一个BaseAp..

2020-05-18 22:32:07 660

原创 模块通信模块间服务调用ARouter-IProvider

新建工程,首先来看一下工程结构模块化是一种思想:实现它的方式有组件化,插件化等等。(模块化,多分包dex,热修复,SPI(ARouter))关键词app是主工程,base是所有模块都需要依赖,其他的属于普通模块,功能单一。这样的结构比起传统的工程结构更加高内聚低耦合。模块之间的通信其实也可以采用EventBus来传递数据,需要回调数据的时候可以将xxEventBus定义成interface也是可以的。EventBus的缺点:1.一经发出所有的接收器都可以接受,功能较为单一。2.Eve

2020-05-18 15:50:59 2538

原创 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 2169 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 425

原创 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 1994

转载 各种Android UI开源框架集合

https://blog.csdn.net/weixin_38775077/article/details/80980564

2019-07-05 10:54:37 553

HarmoneyOSDemo.zip

HarmoneyOSBottomNavigation+Fraction+网络请求框架Demo

2021-05-11

apkpatch-1.0.3.zip

Andfix apatch工具包 usage: apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***> -a,--alias <alias> keystore entry alias. -e,--epassword <***> keystore entry password. -f,--from <loc> new Apk file path. -k,--keystore <loc> keystore path. -n,--name <name> patch name. -o,--out <dir> output dir. -p,--kpassword <***> keystore password. -t,--to <loc> old Apk file path.

2020-06-02

Android 条码识别,一秒响应。

条码扫描,用于ZBar为基础的条码扫描,包含了自动对焦等,响应速度快,识别率搞,亲测了一下,还行。

2019-10-29

RxPermissionsDemo.zip

Android M之后系统引入了新的权限管理机制即运行时权限管理,但是真正的要在自己项目中引入该机制,需要编写很多额外的代码,让人望而生畏!为了解决这个问题,很多网友为了能简化代码、降低使用难度,封装了很多优秀的权限库,本资源以RxPermissions为例

2019-06-28

RepluginSpace.zip

RePlugin外置插件化,Application采用非继承的方式,权限采用动态申请。

2019-06-10

AIDL小demo(解决Android5.0以上不可调用的bug)

内部存在两个工程,分别是Service工程和客户端工程,使用AIDL跨进程调用两个函数,客户端调用服务器端函数弹出Toast,和客户端调用服务器端下载图片,将二进制流传给客户端。可以拓展为自定义格式跨进程传输

2019-03-28

okhttp3.0+retrofit2.0 二次封装demo代码内有详细注解

这是一个demo 使用androidstudio开发,采用了okhttp3.0+retrofit2.0来二次封装的框架,内部有接口管理,自动解析,等功能,开发者可以通过修改AppConfig内部的URL和@POST内部的参数就可以直接使用,当然Call内部的接受类型需要自己定义

2018-06-29

空空如也

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

TA关注的人

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