AI笔记本

资深 Android 开发工程师,丰富系统级应用经验,覆盖亿级用户设备,专注 AI Agent 工程化落地。白天在搞 AI 智能体,晚上回来折腾这个博客。以前的文章是从刚毕业一个字一个字敲的,现在嘛——我跟 AI 说一句话,它就写好发出来了。不信?看看最新的文章 🚀

文章列表

ViewPager和PagerAdapter、FragmentPagerAdapter、FragmentStatePager
精选Android

ViewPager和PagerAdapter、FragmentPagerAdapter、FragmentStatePager

ViewPager1、ViewPagerandroidx.viewpager.widget.ViewPager,Android中使用非常广泛的控件,可以说是APP必备:首次打开引导页、页面Banner广告等。常用方法:setAdapter() 设置适配器setOffscreenPageLimit() 设置缓存的页面个数,默认是 1setCurrentItem() 跳转到特定的页面setOnPage

1.3k
Code

Java四种引用类型

Java四种引用类型每种编程语言都有自己操作内存中元素的方式,例如在 C 和 C++ 里是通过指针,而在 Java 中则是通过“引用”。在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。在 JDK1.2 之前,Java中的定义很传统:如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地址,就称为这块内存代表着一个引用。Ja

2.1k
Android各版本对应的SDK版本
置顶Android

Android各版本对应的SDK版本

Android各版本对应的SDK版本平台版本SDK版本版本名称17.0Cinnamon BunAndroid 1716.0BaklavaAndroid 1615.0V(VanillalceCream)Android 15 (Android V)14.0U(UpsideDownCake)Android 14 (Android U)13.0T(33)Android 13 (Android Tirami

6.2k
Android

Activity四种启动模式

Activity四种启动模式启动模式android:launchMode在AndroidManifest.xml中配置,共有四种启动模式。Android开发者博主扔物线关于Activity的启动模式说的非常细! 1、standard:标准模式此模式为默认模式,android:launchMode="standard”可不写,默认为此模式。在标准模式下,每启动一个activity,系统则会创建一个相

2.1k
时间选择器:DatePicker和TimePicker
Android

时间选择器:DatePicker和TimePicker

时间选择器:DatePicker和TimePickerAndroid开发常常会遇到选择日期时间的场景,Google为我们提供了现成的系统公共控件调用。至于时间使用Java标准API即可获取想要的,可以参考Java日期:Date、Calendar及DateFormat格式化。1、日期选择器DatePickerDialog2、时间选择器:TimePickerDialog

1.7k
Detected problems with API compatibility...
Android

Detected problems with API compatibility...

由于反射调用了隐藏的API,在Android9.0运行APP的时候会出现弹框提醒:Detected problems with API compatibility(visit g.co/dev/appcompat for more info) “自 Android P 也就是 Android9.0开始,谷歌限制开发者调用非官方公开API(使用@hide注解的系统源码)以及废弃API(@Deprec

2.2k
Android

View的四个构造函数

View的四个构造函数一般自定义View,都需要继承View或者View的某个子类,必须要实现几个参数不同的构造方法:第一个View(Context context),一般用于在代码中直接声明自定义View的时候使用第二个构造函数View(Context context, @Nullable AttributeSet attrs)是在布局中使用自定义的View是系统会自动调用,生成自定义View实

2.4k
最最最常用的控件:TextView
Android

最最最常用的控件:TextView

最最最常用的控件:TextView1、TextView常用属性:2、TextView跑马灯布局文件中TextView的几个重要属性都要设置写好上面的布局就可以实现简单的跑马灯,但是实际布局不肯能这么简单,会很复杂有各种控件,TextView可能不只一个还会有EditText占用焦点。跑马灯只有TextView获取焦点的时候才有效果。如果没有获取焦点就像下面的第二行TextView,虽然设置了跑马灯

3.6k 8
another git process seems to be running in this repository
Git

another git process seems to be running in this repository

another git process seems to be running in this repository1、问题操作git准备撤回工作区中已修改的文件内容。提示操作失败:2、解决进入到隐藏的.git文件夹下:删除这个index.lock文件3、原因引起是因为在git执行一个命令的时候直接ctrl+d,强行终止了。导致git命令没有完成,意外终止而导致。参考博客: Git操作失败并提示A

1.7k
simpleUML:UML类图生成插件
分享

simpleUML:UML类图生成插件

simpleUML:UML类图生成插件类图对于理解设计,开发过程中输出一些必要的设计文档很重要。手动用visio画UML类图比较慢,可以借助工具一键生成UML类图。1、安装插件设置中Plugins搜索simpleUML安装,重启IED。2、生成类图安装好之后就可以直接使用了。①右键需要添加生成类图的类或者整个包:②注意左侧工具类可以选择显示的类图关系,生成的UML图默认只有聚合类型的线条,可选中一

2.9k
Android

Android ScrollView 顶部下拉与底部上拉回弹效果实现

Android ScrollView 顶部下拉与底部上拉回弹效果实现ScrollView 滑到顶部或底部时,默认是"硬边界"——戛然而止,没有 iOS 那种顺滑的橡皮筋回弹手感。要让 Android 的 ScrollView 也具备这种效果,需要自定义控件在触摸事件里做干预。本文实现一个 ReboundScrollView:在 dispatchTouchEvent 中判断是否到达顶部/底部,到达后

303
APK反编译
Android

APK反编译

APK反编译反编译apk,查看源码资源等,需要用到三个工具apktool、dex2jar、jd-gui。首先去三个平台下载各自的工具包。这里不提供下载,百度可以找到下载资源。1、apktool借助apktool提取apk中的目录,资源。使用下面的命令,最好使用Windows原生的shell,用git一堆坑,主要是路径和linux不一样。可能会遇到缺少framework的错误,这就需要从手机中将系统

2.3k
添加LeakCanary后编译冲突问题
开源

添加LeakCanary后编译冲突问题

LeakCanary导致编译冲突问题坑点:在比较旧的项目build.gradle文件中添加LeakCanary依赖准备分析内存泄露,可以sync,但是build的时候直接报错不通过:解决办法就是移除引入库中的额外重复依赖:或者降低到低版本的,没有这个问题:技巧:在代码项目路径下,运行命令检查依赖项:会检测出依赖关系:

2.1k 1
ViewStub懒加载
Android

ViewStub懒加载

ViewStub懒加载ViewStub常用于优化布局,使用它可以提高布局加载的性能。1、ViewStub介绍①ViewStub继承自View②ViewStub默认是不可见(GONE),而且View的大小为0③当一个ViewStub被设置成可见visible或者调用inflate()方法时,ViewStub得到填充。此时ViewStub所引用的layout布局会替换掉当前ViewStub显示出来。2

2.1k
分享

网易云音乐的外链播放器

网易云音乐的外链播放器搭建个人网站的时候放点音乐,会显得高大上一些。网易云音乐提供单曲、专辑、歌单、电台节目的外链播放器,将外链播放器放在论坛、网站上,都可以免费播放。1.在网页版(music.163.com)进入单曲、歌单、专辑、电台节目页面后,点击生成外链播放器链接。2.歌单和专辑外链播放器可以选择大中小三种尺寸,单曲和电台节目可以选择中小两种尺寸。你可以选择最适合你网站设计的尺寸。3.还可以

2.5k
【AIDL】基础知识
Android

【AIDL】基础知识

AIDL 基础知识粗略的了解一下AIDL。更深的技术探究以后随着时间不断沉淀。1、AIDL简介AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码。从某种意义上说AIDL其实是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而是据

2.0k
Android多媒体MediaPlayer
Android

Android多媒体MediaPlayer

Android多媒体MediaPlayerAndroid提供了多媒体播放库MediaPlayer,在播放音视频的时候可以方便的使用。存储在应用程序资源(原始资源)中的媒体文件、文件系统中的独立文件或通过网络连接到达的网络数据流中播放音频或视频。在使用MediaPlayer对应用程序进行开发之前,必须声明一下权限,才能正常使用: Internet权限——如果您正在使用MediaPlayer来播放流基

2.0k 1
禁止迅雷极速版强制升级的方法
分享

禁止迅雷极速版强制升级的方法

禁止迅雷极速版强制升级的方法“迅雷极速版是迅雷在2014年,推出的全新版本。该版本采用极简风格,没有添加任何广告。当时,官方对外宣称,这是他们回归初心的作品,决定重新做一款用户喜欢的下载软件。”最近迅雷极速版开始频繁弹出升级提醒。到最后,还演变成了强制自动升级。而且,它会默认安装到C盘,用户根本无法取消关闭。昨天用迅雷下载,迅雷一直不断的弹出强制升级的窗口,只能通过任务管理器杀死自动升级的程序,除

2.4k
PostgreSQL最方便的数据库
数据库

PostgreSQL最方便的数据库

PostgreSQL最方便的数据库PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。官网:PostgreSQL 1、介绍PostgreSQL是一个功能强大的开源对象关系数据库系统,经过30多年的积极开发,已在可靠性,功能健壮性和性能方面赢得了极高的声誉。PostgreSQL是第一款实现多版本并发控制功能(MVCC,Multi-Version Co

2.1k