自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 收藏
  • 关注

原创 a.gray.PiggyGoldcoin.a病毒(已解决)

一、问题描述最近公司突然收到应用宝,OPPO和VIVO的应用下架通知,通知我们的俩款App疑似金融类诈骗软件,已下架。点进去查看是 平台例行扫描应用再次推送病毒结果,自动下架~当时全项目组都很蒙蔽,一个运动类App居然被查出是金融类诈骗病毒。后面不信邪有上传了一次,结果还是说是病毒软件,为了防止多次上传被拉黑名单,于是我们先打算自行测试一下。第一个,各大测试平台,VIVO用的是腾讯,安天和360扫描,于是被得到了以下结果测试了几次,发现都是腾讯手机管家测出来的,...

2020-11-19 20:01:05 72972 48

原创 ADB命令查看应用包名

一、查看当前包名1、在手机上打开app2、电脑端Crtl+R 输入cmd回车 输入命令:adb shell dumpsys window w |findstr \/ |findstr name=3、如下图,我在手机上打开了今日赚(一款赚零花钱的悬赏任务类App),查出来的包名应用名:其中 com.im.todayz为应用包名 ,fw.earntoday.ui.activity.MainActivity为当前运行的activity界面二、查看所有包名1. 依旧数据线连接手机,注...

2020-11-03 09:50:02 53881 4

原创 css设置输入框边框无效或者不展示边框

因为在触发:focus时,用作突出的边框色,是由outline控制的,即获得焦点时,会被一个轮廓虚拟框围绕,而轮廓虚线框就是 outline。发现输入框input以及textarea样式css标签:focus更改样式无效这个问题。border-color: #824DFF 无效,于是试着改了下outline就生效了。bug描述:在聚焦的时候,期望输入框的边框是主题色,但是不知道是个啥颜色。所以 设置outline: 1px solid #824DFF;如果想要边框不可见,设置outline: none;

2024-04-23 15:19:32 367

原创 Flutter——用户关闭键盘后强制拉起键盘

单独处理,输入框在聚焦情况下,用户手动关闭键盘,下次点击输入框仍无法弹起,先让组件失焦然后聚焦就可以弹起键盘了。今天在弄输入框的时候,发现用户手动关闭键盘后,因为自定义组件的特殊性,我在点击输入框后并没有唤起键盘。但是在我这边的需求里,当用户手动关闭键盘时,他还在聚焦,我这时候,点击输入框,但是它并不会弹起来,于是。我们直接聚焦,就可以弹起键盘。来监听键盘的可见性状态。的值来判断键盘是否关闭。小部件关联起来,并使用。属性将其与之前创建的。

2024-03-28 16:13:27 958

原创 Flutter开发入门——路由

移动端应用开发中,路由技术是一个非常重要的组成部分。路由技术负责管理应用中各个页面之间的跳转、导航以及参数传递等关键功能。在移动端应用中,一个高效、易于维护的路由系统对于提高开发效率和用户体验具有重要意义。Flutter 中的路由管理和原生开发类似,无论是 Android 还是 iOS,导航管理都会维护一个路由栈,路由入栈(push)操作对应打开一个新页面,路由出栈(pop)操作对应页面关闭操作,而路由管理主要是指如何来管理路由栈。// 创建一个Intent对象,指定要跳转的Activity。

2024-03-19 13:50:52 1339

原创 Flutter开发入门——Widget和常用组件

1、什么是Widget?在Flutter中几乎所有的对象都是一个 widget。与原生开发中“控件”不同的是,Flutter 中的 widget 的概念更广泛,它不仅可以表示UI元素,也可以表示一些功能性的组件如:用于手势检测的、用于APP主题数据传递的Theme等等,而原生开发中的控件通常只是指UI元素。可以说,万物皆可Widget。用于不需要维护状态的场景,它通常在build方法中通过嵌套其他 widget 来构建UI,在构建过程中会递归的构建其嵌套的 widget。

2024-03-14 11:27:43 1345

原创 Flutter入门学习——Flutter和Dart

Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台。Flutter 提供了丰富的组件、接口,开发者可以很快地为 Flutter 添加 Native(即原生开发,指基于平台原生语言来开发应用,flutter可以和平台原生语言混合开发) 扩展// 下面代码在dart中会报错,因为变量t的类型已经确定为String,// 类型一旦确定后则不能再更改其类型。t = 1000。

2024-03-11 19:34:53 1301

原创 Android 屏幕适配方案总结

Android 的屏幕尺寸多种多样,如 5 寸、5.5 寸、6 寸 等等,当然,屏幕分辨率也是多种多样,这很容易导致同一元素在不同手机上显示的效果不同的问题。本文章作为自己项目平时编写中的一些常用屏幕适配总结,方案1,3,4都用过,挺不错的。

2024-02-19 12:17:08 930

原创 Android View解析

1.View是用户接口组件的基本构建块;2.View在屏幕上占据一个矩形区域;3.View通过绘制自己与事件处理两种方式与用户交互设计View,主要是为了让应用能够与用户交互,要想完成交互,这个View就要在屏幕上占据一个矩形区域,然后利用这块屏幕区域与用户交互,交互的方式就两种,绘制自己与事件处理。自定义View是Android开发中的重要概念,允许你创建不同于标准UI组件的用户界面元素。这些自定义View可以是各种形状、颜色和交互方式,完全满足你的设计需求。

2024-02-02 17:17:24 1178

原创 Java 类的加载流程

指的是将类的.class 文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class 对象,用来封装类在方法区内的数据结构。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:、使用和卸载七个阶段。

2024-01-30 18:41:58 1167

原创 Android性能优化系列——APK包优化

原因是在2018年,v7版本的SO库可以满足市面上绝大多数的要求,可能八九年前的手机满足不了,但我们也没必要去适配老掉牙的手机。实际开发中减少apk体积的效果是十分显著的,如果你使用了很多SO库,比方说一个版本的SO库一共10M,那么只保留v7版本,删掉armeabi和v8版本的SO库,一共可以减少20M的体积。一个APK文件内包含被编译的代码文件(.dex 文件),文件资源(resources), assets,证书(certificates),和清单文件(manifest file)。

2024-01-09 11:32:06 1104

原创 Android性能优化——启动优化

一个App的启动流程的至关重要 ,这是用户启动App后对App的第一印象。在一些小型项目上,如何去优化启动显得无足轻重,但是当一个项目达到足够的量,业务设计足够多时,若不注意app的启动优化,则会出现很多问题。例如一些三方插件的初始化,网络请求初始化,数据库,io操作,动画等等,这无疑都会增加初始化的工作量。如果全都把一些事务放在App启动的时候,则会造成卡顿,黑白屏等现象,这样会带来极差的用户体验。今天,来总结下自己平时会在项目中用到的App启动优化。

2024-01-09 10:38:07 1022

原创 Android性能优化系列——内存优化

是Android应用的生命线,一旦在内存上出现问题,轻者内存泄漏造成App卡顿,重者直接crash,因此一个应用保持健壮,要做好内存的使用和优化。作为一个开发者,需要在平时的代码中就要多注意,如有不合理的地方,则需要进行优化。内存泄漏就是在当前应用周期内不再使用的对象被GC Roots引用,导致不能回收,使实际可使用内存变小,通俗点讲,就是无法回收无用对象。系统在申请内存空间时,没有总够的内存空间供其使用。

2024-01-08 22:23:06 1023

原创 Android性能优化系列——UI优化

在写我们的界面和业务的时候,UI的优化便会显得至关重要。因为当你的UI代码写得很垃圾的时候,就会造成卡顿,丢帧等现象(造成卡顿的原因很多,UI只是其中一中)。Android 应用的卡顿、丢帧等,这些影响用户体验的因素绝大部分都与16ms这个值有关。Android 设备的刷新率也是 60Hz,Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果超过了16ms,我们则认为发生了卡顿。

2024-01-07 17:01:29 1178

原创 Android 实现环形进度条

progressDrawable属性:确定进度条的背景,进度条颜色等等。项目中常常需要用到进度条,很简单,这儿做一个简单的总结和实现。mmmmmm.xml:drawable文件代码。style属性:确定他是什么类型的进度条。可以看出来这儿和上面是大不一样的。aaa drawable文件。里面的属性就是字面意思。

2023-11-29 15:54:10 1933

原创 Android 分享图片和文案

如果设置,此Intent的收件人将被授予对Intent数据中的URI及其ClipData中指定的任何URI执行读取操作的权限。大多数App的需求中,有分享功能,点击唤起系统的分享栏,然后分享内容,例如指定文案,链接,图片等等。2.the.shy.world.top.one.myapplication替换为你的包路径。4.使用Intent实现分享,在intent里put Extra()图片和文本。根据控件临时生成一个图片进行分享,具体的逻辑请看实现代码,代码中有注释。2.图片拿到缓存里,用于分享。

2023-11-06 11:43:01 645

原创 Android 接入ttf字体文件

这样,你就可以在 TextView 中使用自定义的 TTF 字体了。确保 TTF 文件位于正确的目录并指定正确的资源引用。在字体文件准备好后,你可以在 TextView 中使用。然后实现 TTF(TrueType Font)字体文件并将其应用到 TextView。一些炫酷的App总会加一些App自己的字体。这时候需要找UI提供ttf字体文件。属性中,你可以指定 TTF 字体文件的资源引用,例如。目录下的字体文件的名称,或者使用。3. 在业务逻辑代码中。

2023-11-06 11:11:14 1930

原创 Android 图片翻面动画

首先新建一个翻转动画,动画时间为1000毫秒,并且绑定imageView,动画添加监听器,因为部分需求需要在动画结束后进行一些操作。下面的代码,为啥是延迟500毫秒,因为总动画为1000秒,翻面是180度,当500毫秒时,刚好开始看到背面,所以就是给用户一种流畅的卡牌翻面的效果。项目需要实现塔罗牌的翻面效果,需要点击图片后,图片实现翻面,并且翻面过程中,替换成图片资源,类似于扑克牌翻面。图片实现翻面效果,并且在动画执行到一半(刚好到图片背面的时候,进行图片替换)

2023-11-06 10:56:46 337

原创 Android 图片和文本生成新的图片(Canvas)

项目有个需求需要在全屏图片上展示文字并生成一个新的图片并分享出去,图片全屏,文字居中。于是便想到了使用Canvas来直接进行绘制。

2023-10-24 10:26:34 360

原创 Android RecycleView列表实现画廊效果

项目需要实现一个垂直滑动画廊效果的鸡汤App,因为之前做过左右侧滑的壁纸App,使用的是ViewPager来实现的,但是这个App就想到了列表来实现。

2023-10-24 09:41:41 733

原创 Android 喝水项目总结(10.18)

开屏页,2秒后进入主页配置页:设置性别,体重,体重单位(RadioGroup和PickerView)主页(ViewPager+RadioGroup实现三个Fragment页面)首页:自定义今天目标喝水量,输入今天单次喝水量,今天目标进度记录页:过去七天的目标完成(用recycleView展示数据,没有写日历),过去7天的一些平均值计算,今天的喝水记录(时间和ml)设置页(重新配置属性和隐私政策)

2023-10-18 17:10:19 279

原创 Android 网络动态监听和是否联网

App内部分3.使你的BaseActivity继承NetworkListenerHelper.NetworkConnectedListener并重写onNetworkConnected方法,这样当网络变化后,就会回调此方法,你就可以进行自己的逻辑处理了。App内部分功能需要动态监听网络,获取网络信息,IP等,此外部分界面的功能需要检测是否联网才可跳转,于是自己总结了下。原理:因为当手机的网络发生变化时,广播是可以监听到的,所以可以利用这一个特性进行监听,并发送到应用所需要的地方。第三步:新建网络监听工具类。

2023-10-18 16:46:11 789

原创 Unable to make field private final java.lang.String java.io.File.path accessible: module java.base

方法二:在项目的gradle.properties文件,在org.gradle.jvmargs配置进行修改,最近老是遇到这个问题,因为需求经常变动,所以经常会去看三方库的Demo,但是build的时候老是爆这个错。原因:其实就是java版本过高,三方库的版本一般较低,所以你的把版本降低一下。降低项目的java版本,选个1.8就行了,之前默认是jbr_17。

2023-10-12 11:40:50 10914 5

原创 Android greendao 报错Could not init DAOConfig

没开启混淆前是没有问题的,开启混淆后就报错了。结合litepal需要添加混淆规则和平时bean类也需要加@Keep注解防止混淆,于是乎就感觉是混淆需要配置。以前遇到过,解决了,但是没有记载,这次自己记载一下.重新运行就解决了!

2023-10-11 14:26:47 530 2

原创 Android 获取IP地址的Ping值 NetworkPingUtils

下面的 min/avg/max/stddev = 39.420/45.341/47.971/3.133 ms 最小延迟/平均/最大/标准差(标准差越小越好)项目里需要对动态配置的Ip列表都去ping下延迟,取出其中最小的三个进行随机取值然后去连接,倒腾了一下午终于搞出来了!代码详解:参数:传入IP地址 返回值:把IP和得到的延迟返回,getPing()是获取到平均延迟。上面的意思是:已发送10个数据包,已接收10个数据,0.0%数据包丢失,10个数据超出等待时间。2.同时去Ping,不能让用户等待;

2023-10-04 23:30:23 500

原创 Android Gilde获取网络图片显示保存路径并转化为bitmap

为某个按钮或者图片添加点击事件,然后:strImg为图片url地址 ,loadDialog只是个提示信息,可以不要这个参数。loadDialog.initShow(context,"图片保存中");详细注释,放在代码里面了。

2023-09-26 11:45:09 1145 1

原创 Android 保存图片并刷新相册(无需权限)

之前的保存图片吧,在Android11之前,我会去申请WIRITE权限,11之后,我又去申请MANAGE_EXTERNAL_STORAGE这个权限,该权限将授权读写所有共享存储内容,这也将同时包含非媒体类型的文件。但是在google上架的时候,MANAGE_EXTERNAL_STORAGE属于敏感权限,需要向谷歌做声明,做了,没过,谷歌说可以不要这个权限也可以保存,看来是我无知了,于是去研究了一下下,有了下面的方法。其中:通知相册刷新的逻辑是下面代码。

2023-09-26 11:12:37 1581

原创 Android存储权限完美适配(Android11及以上适配)

Android 11 里将引入一个特别的权限叫做 MANAGE_EXTERNAL_STORAGE,该权限将授权读写所有共享存储内容,这也将同时包含非媒体类型的文件。(至于我的小米为啥Android 13也能正常拉起,我也不知道具体原因,但是在Android Studio的历史链接设备中,我发现它识别我的手机系统为Android 12,真是百思不得其解)因为有时候用户会拒绝权限且永久弹窗,所以为了方便我就用了EasyPermission这个库,拒绝的情况下,弹窗跳转系统权限设置页面去让用户选择开启权限。

2023-09-18 21:30:20 6042 3

原创 Android StringFog 字符串自动加密

一款自动对dex/aar/jar文件中的字符串进行加密Android插件工具,正如名字所言,给字符串加上一层雾霭,使人难以窥视其真面目。可以用于增加反编译难度,防止字符串代码重复。支持java/kotlin。支持app打包生成的apk加密。支持aar和jar等库文件加密。支持加解密算法的自主扩展。支持配置可选代码加密。完全Gradle自动化集成。不支持InstantRun

2023-09-18 20:43:27 1963 8

原创 Android 混淆使用及其字典混淆(Proguard)

所以像网上贴的很多排除自定义View,或四大组件被混淆的规则在Android Studio中是无需加入的(我目前看来是如此的)默认情况下会对所有代码,包括第三方包都进行混淆,可是有些代码或者第三方包是不能混淆的,这就需要我们手动编写混淆规则来保持不能被混淆的部分。ProGuard能够通过压缩、优化、混淆、预检等操作,检测并删除未使用的类,字段,方法和属性,分析和优化字节码,使用简短无意义的名称来重命名类,字段和方法。可以看到,里面的各种对象,方法,变量名,参数等等都被混淆了,变化非常之大。

2023-09-18 20:42:04 1347

原创 Android侧滑栏(一)可缩放可一起移动的侧滑栏

在实际的各类App开发中,经常会需要做一个左侧的侧滑栏,类似于QQ这种。今天这篇文章总结下自己在开发中遇到的这类可以跟随移动,且可以缩放的侧滑栏。

2023-08-11 11:12:46 1919

原创 Android 屏幕适配各种宽高比的手机

由于android 手机的屏幕宽高比样式太多了,在设计UI时,很多时候,会因为宽高比,分辨率不同会有展示上的差异。

2023-07-24 17:09:10 1852

原创 Andorid 实现倒计时,定时任务

private val imageList = listOf(R.mipmap.second_bg_2, R.mipmap.second_bg_ok) // 替换成你的图片资源。在Andorid的实际开发中经常会用到倒计时,无论是可见的进度条,倒计时,广告,还是背后的一些操作,今天来总结下几种倒计时的实现方法。需求是在某一段时间内,不断的切换图片的资源,因为UI没时间做动画,所以自己简单实现一下。以上就是android中,我常常用来实现倒计时的四种方式。当然你也可以使用这俩货实现定时任务。

2023-07-13 19:30:47 627

原创 一个四年Android程序猿的2023上半年总结

去年的目标就是学习学习,涨薪涨薪。上家公司的同事氛围很不错,所以真的学到了不少东西,他们很愿意教我一些东西。涨薪这件事儿吧,属于被动涨薪了,哈哈哈,跳槽涨薪,惭愧惭愧啊~怎么说呢?年纪和技术都在增长,但是总的来说对自己还是不大满意的,虽然每天都过的挺充实的,但是还是会有些遗憾,比如没进大厂,没有管理经验,技术深度不够。罢了罢了,总结一下这上半年吧~

2023-07-13 18:06:07 417

原创 Android 查看ANR和Crash日志(adb bugreport)

你可以搜索关键字:比如你的类名啊,crash等字眼去排查,当然,我觉得这个没有AndroidStudio的logcat好看好找。打开下面的文件,在里面去找关键字,就可以定位问题里,例如我下面这个就是使用了三方库的方法,结果在部分手机上不适配,就会卡顿。当然,你想看崩溃的,就找到FS/data/tombstones的文件,查找时间点最接近的日志。于是还是得用ADB连接来看一下,之前用,但是老是会忘记,今天总结一下。今天测试那儿出了个ANR,我自己手机没问题,很烦,定位不了位置。第一个:查看Crash。

2023-07-10 16:05:26 3487

原创 Git无法上传删除 Commit里面有大文件

因为GitHub的文件上限是100M,但是打的包太大了,有170M,所以是不能上传的,但是又是已经在Commit历史中了,并且已经好几次了,于是就想在历史中删除掉。请注意,这种操作会修改历史记录,因此在执行此操作之前,请确保您理解其潜在风险,并在执行操作之前备份重要数据。因为在一次提交中不小心把一个打包的aab文件弄到commit文件里了,于是在上传的时候push rejected 了。这个是因为你本地的还有更改,你继续放到commit里面 就行了,如果还有其他的报错,根据提示修改就是了。

2023-07-05 22:23:54 685

原创 Android 手机来电 获取来电信息,接听/挂断电话

之前看了许多博客,结果发现,很多都是1几年的文章,很多方法都已经被废弃了,或者不适配高版本的android系统,于是去查了查开发者和stack overflow,emmmm,目前这个方法可行。说实话,现在手机系统的来电展示不错了,所以这种App需要足够做的花哨好用才行,但是这又涉及用户的敏感权限和应用市场的卡脖子。监听用户手机来电,弹起App内自定义的来电展示,并且展示来电电话,用户可以接通和挂断。小于Android9时,利用反射的原理来调用方法,因为Api接口不公开了,调用不了。第三个:接听和挂断电话。

2023-07-05 17:20:46 2406 2

原创 WebView 加载不出网页,一片空白

今天在项目上加载网页时,发现一只加载不出来,emmm,就看了下以往的项目,发现遗漏的地方不止一点哦,在此做个总结。检查网页链接:确保所加载的网页链接正确,并且没有任何重定向或访问限制。4.检查网络连接:确保设备正常连接到互联网,并且可以访问所加载的网页。之前有些项目也没加过这个也能加载,不过加上也没事。

2023-07-05 16:24:26 6092

原创 Android RecycleView列表使用GridLayoutManager 均分子项Item,且左右宽度相同

但是我们直接设置的时候,他的子项会在给他的布局的左边,于是我想到了设置下子项的左右边距,但是android手机屏幕太多种类型了,所以在部分手机上,也不大行。列表分为一列两个,两个子项宽度一致,且左右边距一样,就是要好看,子项宽度适配手机,高度适配宽度。之前是设置decoration,发现不太行,还是得适配手机宽度才行。上面我减去了40dp,就是为了美观点,不然两个子项直接怼一起了,很丑哦~~既然要匹配手机屏幕宽度,那就让手机宽度来决定子项宽度。当然,如果每个子项的宽会随内容改变,建议使用流布局哈。

2023-07-05 14:56:58 1485

原创 Android 实现透明度

Color类有个方法 Color.argb((alpha, red, green, blue),其中为透明度和三原色,他们的取值都是0~255,所以,十六进制的计算就和这个0~255有关,所以,16的透明度,就等于0.16乘以255约等于41,41的十六进制就是2个16再加个9,就是29.开发时,UI上的一些布局总需要设置他是有一定的透明度的,有些UI不会给AHEX的代码,只有无透明度的HEX颜色代码,我也懒得去算,每次都要去网上查,所有今天自己总结一份,下次懒得再去找了。

2023-07-04 10:21:23 1603

空空如也

空空如也

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

TA关注的人

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