Android

Flutter 异步编程之单线程下异步模型图文示例详解

2022-09-17
目录 一. 本专栏图示概念规范 1. 任务概念规范 2. 任务的状态 3. 时刻与时间线 4.同步与异步 二.理解单线程中的异步任务 1. 任务的分配 2.异步任务特点 3. 异步任务完成与回调 三. Dart 语言中的异步 1.编程语言中与异步模型的对应关系 2.Dart 编程中的异步任务 3.当前任务分析 四.异步模型的延伸 1. 单线程异步模型的局限性 2. 多线程与异步的关系 3. Dart 中如何解决单线程异步模型的局限性 一. 本专栏图示概念规范 本专栏是对 异步编程 的系统探索,会

发布 Android library 到 Maven 解析

2022-09-17
目录 前言 疑惑 解惑 发布配置 发布内容 有哪些内容 依赖的规则 本地依赖 aar jar 中央仓库的依赖 冲突 混淆配置 小结 前言 了解一下将 Android library 发布到中央仓库(比如 Maven Center,jitpack) 的过程中关于一些细节的疑惑.比如我们到底发布了啥?只有 xxx.aar 文件吗?代码中依赖的三方库又是怎么处理的? 疑惑 关于如何将一个功能完善的 Android Library 发布到 Maven Center 或者类似的中央仓库,已经是非常小儿科的

ASM的tree api对匿名线程的hook操作详解

2022-09-17
目录 背景 ASM介绍 class文件 fields methods InsnList Signature 实战部分 解决“匿名”Thread 最后 背景 看完本章,你将会学习到用ASM的tree api进行对匿名线程的hook操作,同时也能够了解到asm相关的操作和背景知识介绍!对于ASM插桩来说,可能很多人都不陌生了,但是大多数可能都停留在core api上,对于现在市面上的一些插桩库,其实很多都用tree api进行编写了,因为tree api的简单与明了的特性,也越来越成为许多开源库的选

Android实现可折叠式标题栏

2022-09-16
本文实例为大家分享了Android实现可折叠式标题栏的具体代码,供大家参考,具体内容如下 先看效果图: 一.实现步骤: 1.布局文件 <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android性能优化之plt hook与native线程监控详解

2022-09-15
目录 背景 native 线程创建 PLT PLT Hook xhook bhook plt hook总结 背景 我们在android超级优化-线程监控与线程统一可以知道,我们能够通过asm插桩的方式,进行了线程的监控与线程的统一,通过一系列的黑科技,我们能够将项目中的线程控制在一个非常可观的水平,但是这个只局限在java层线程的控制,如果我们项目中存在着native库,或者存在着很多其他so库,那么native层的线程我们就没办法通过ASM或者其他字节码手段去监控了,但是并不是就没有办法,还有

从零开始使用gradle配置即可执行的Hook库详解

2022-09-15
目录 背景 本文须知 当前技术背景 底层选择 目标流程图 Transform ASM 封装开始 目标 实现 gradle 定义extension Transform阶段收集信息: 自定义的classvisitor 自定义method visitor 自定义hook操作 总结 背景 有一天,老板突然找到小B说,隐私合规需要我们获取权限前,需要明确授权来意,这个你来跟一下吧!小B此时就可愁了,因为项目权限那么多,每个自己手动加上授权来意提示的话,可能会漏掉很多,工作量也大,这可咋办呀!老B看到小B这

Android性能优化之线程监控与线程统一详解

2022-09-15
目录 背景 常规解决方案 线程监控 当前线程统计 线程信息具体化 线程统一 Thread创建 注意 总结 背景 在我们日常开发中,多线程管理一直是非常头疼的问题之一,尤其在历史性长,结构复杂的app中,线程数会达到好几百个甚至更多,然而过多的线程不仅仅带来了内存上的消耗同时也降低了cpu调度的效率,过多的cpu调度带来的消耗的坏处甚至超过了多线程带来的好处. 在我们日常开发中,通常会遇到以下几个问题 某个场景会创造过多的线程,最终导致oom 线程池过多问题,比如三方库有一套线程池,自己项目也有一

Android&nbsp;菜单栏DIY实现效果详解

2022-09-13
目录 前言 实现的效果和思路 1. 绘制底部布局 2. 添加子view 3. 处理事件分发 4. 做个动画 5. 小结 前言 个人打算开发个视频编辑的APP,然后把一些用上的技术总结一下,这次主要是APP的底部菜单栏用到了一个自定义View去绘制实现的,所以这次主要想讲讲自定义View的一些用到的点和自己如何去DIY一个不一样的自定义布局. 实现的效果和思路 可以先看看实现的效果 两个页面的内容还没做,当前就是一个Demo,可以看到底部的菜单栏是一个绘制出来的不规则的一个布局,那要如何实现呢.可

Android自定义View实现天气预报折线图

2022-09-13
本文实例为大家分享了Android自定义View画天气预报折线图的具体代码,供大家参考,具体内容如下 效果图如下: 刚开始尝试用第三方画曲线的框架来画效果图,后来发现曲线间的阴影当有负数的度数的时候画不出来,而且不需要点击放大.点点可点的效果,用框架显得很臃肿,所以最后用自定义View来画的折线图.自定义画折线图的大致思路:这个图是有多个四边形组成的(4个点连接起来就是一个四边形),两边延伸:添加四个多余的点,将左右的边距设置成负数即可. 代码如下: public class WeatherCh

Android内置SQLite的使用详细介绍

2022-09-13
目录 一.创建数据库 1.新建数据库帮助类 2.在数据库帮助类中输入代码 3.代码讲解 二.添加数据 1.界面效果 2.准备工作 3.布局界面 activity_main.xml 4.类文件代码 MainActivity.java 5.代码讲解 三.查询数据 1.界面效果图 2.布局界面 activity_second.xml 3.类文件 SecondActivity.java 4.代码讲解 四.修改数据 1.界面效果图 2.布局界面 activity_ third.xml 3.类文件 Thir

Flutter实现一个支持渐变背景的Button示例详解

2022-09-12
目录 Flutter中的按钮 不完美的地方 在child中处理 外面套一个wrapper MaterialStateProperty MaterialStatesController 边距问题 EnhancedButton Flutter中的按钮 自Flutter 1.20 新增了ButtonStyleButton 系列按钮,可以说非常好用了,默认样式比之前漂亮了许多,扩展性也增加了很多.按钮样式统一由ButtonStyle这个类提供,支持根据各种状态(MaterialState)变化的属性,也

Android&nbsp;View转换为Bitmap实现应用内截屏功能

2022-09-12
目录 前言 一.getDrawingCache 二.黑屏问题 三.源码分析 四.View转Canvas转Bitmap 前言 安卓设备一般都自带截图功能,但是用户体验有不好之处.就是会连带着状态栏..时间日期.其他不必要页面中信息,等等与用户想截屏的内容不符的信息也会被保存下来.通常,截图后用户会再次裁剪一次才能想把真正需求分享出去. 因此,咱们技术研发会遇到针对性的会做一些应用内的截屏功能. 一.getDrawingCache getDrawingCache()是其中一种截图手段,使用方便,主要

Android TabLayout 自定义样式及使用详解

2022-09-11
目录 基本使用 XML静态设置TabItem 联动ViewPager2动态设置TabItem 1. Activity布局代码 2. 创建三个Fragment给ViewPager2设置 3. Fragment对应XML布局 4. 绑定起来 最终效果 根据数据源动态生成TabItem 1.Activity布局代码 2. Activity代码 最终效果 修改TabLayout背景颜色 修改indicator layer-list 制作圆形的indicator 制作圆角矩形indicator 修改边距

Android自定义定时闹钟开发

2022-09-11
本文实例为大家分享了Android开发之自定义闹钟实现,供大家参考,具体内容如下 闹钟时间设置及显示 闹钟的布局很简单,就是一个简单时间设置,所以自己写一个简单的布局按钮之类的也可以了,不过多赘述.另外使用时间对话框TimePickerDialog 去设置时间,用Calendar可获取当前系统的时间.AlertDialog.THEME_HOLO_LIGHT是设置dialog的样式,不设置的话就是一个默认的圆形时钟,设置这个之后是一个可滚动上下滑动的时钟样式.代码展示: //设置时间事件的点击 C

Android实现秒表功能

2022-09-10
本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下 设计完成一个秒表,具备启停功能,正确使用工作线程完成界面刷新 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app

Android实现简易的闹钟功能

2022-09-10
本文实例为大家分享了Android实现简易的闹钟功能的具体代码,供大家参考,具体内容如下 主要是通过广播,实现一个闹钟的简易功能. 实现效果如下: 主界面为一个简易的设置闹钟Button,点击“设置闹钟”弹出时间设置窗.设置成功后,会自动弹出弹窗,提示“时间到了”. 打开Android Studio,选择File>New>New Project,选择Phone and Tablet设备下的Empty Activity,创建项目名称为“DrinkRemind”,并点击“Finish”,完成项目创

Android简单实现天气预报App

2022-09-10
本文实例为大家分享了Android简单实现天气预报App的具体代码,供大家参考,具体内容如下 一.UI设计 首页UI <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmln

Android实现简易秒表功能

2022-09-10
本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下 今天为了给师弟们讲安卓,花了10分钟写了一个简易的秒表app,现贴出代码,供各位刚入门以及还未入门的同学们参考 第一步:布局activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android

Android自定义View实现时钟功能

2022-09-10
最近在练习自定义view, 想起之前面试的时候笔试有道题是写出自定义一个时钟的关键代码. 今天就来实现一下. 步骤依然是先分析, 再上代码. 实现效果 View分析 时钟主要分为五个部分: 1.中心点: 圆心位置2.圆盘: 以中心点为圆心,drawCircle画个圆3.刻度: paint有个aip, setPathEffect可以根据path画特效, 那么刻度就可以根据圆的path画一个矩形path的特效, 并且这个api只会画特效, 不会画出圆. /** * shape: 特效的path, 这

Android开发实战闹钟项目

2022-09-09
本文实例为大家分享了Android实战闹钟项目的具体代码,供大家参考,具体内容如下 一.闹钟功能的介绍以及界面的展示 该闹钟是根据我们手机闹钟设计的一个简单的闹钟APP,其中包含时钟.闹钟.秒表和计时器功能.用户可以对闹钟添加和删除,可以对秒表计时.暂停和重置,对计时器可以暂停.计时.继续和重置等功能. 二.介绍系统的设计界面 闹钟的布局文件代码如下由于该闹钟系统包含时钟.闹钟.计时器.秒表四个功能,所以只要在xml文件插入TabHost控件就能实现在手机上更加简洁地展示四个功能.后面只需要在T