- 博客(67)
- 资源 (6)
- 收藏
- 关注
原创 Android AI开发 工具选择
总结:阿里 lingma 、腾讯 Codebuddy 可供使用的LLM 都是国内的,Cursor 搭配外网VPN,可使用国外模型,主要是 Gemini 、GPT 等前沿LLM,在复杂问题的处理上,要明显由于国内模型,例如:SIP电话SDK查找,集成。:负责工程搭建、代码跳转(阅读代码)、编译、Debug、真机调试、Gradle 构建等原生开发流程,图形化操作与生态适配是核心优势,必须作为主力开发环境。适合技术选型检索、代码生成、Demo 编写、问题排查,尤其在一些复杂技术上,可提供优秀的方案。
2026-02-24 19:19:33
151
原创 Android 开发环境 最新配置(稳定版搭配)
2025年Android开发推荐配置:采用稳定组合AGP 8.6.1 + Gradle 8.13,配合Android Studio 2025版(支持16KB size检测)。开发环境需JDK 17,该配置经过验证运行稳定,适合现代Android应用开发需求。这套工具链兼顾了稳定性和新特性支持,为开发者提供可靠的开发基础。
2026-02-24 18:43:23
28
原创 GP市场数据变更条件
本文摘要:Google Play应用上架与更新需填写多项元数据,分为必填和可选两类。关键必填项包括包名(不可修改)、应用图标、名称、简介、详细描述、截图等,大部分需审核才能生效。应用二进制文件、版本号、API级别等开发相关项必须随发版更新。隐私政策、数据安全表单等内容需确保合规。部分信息如宣传视频、内购商品、类别标签等可随时修改。不同项目的更新路径和审核要求各异,开发者需注意Play Console中各设置项的存放位置和修改限制。
2026-02-24 18:34:13
633
原创 手机号自动填充:通过Google API 实现手机号选择
摘要:本文介绍了一种通过Google API检测手机卡号并弹窗展示的技术方案。该方案使用AndroidX Credentials和Google Play服务认证库,无需额外权限且无政策风险。核心功能包括初始化接收器获取选择结果和调用API打开手机号选择弹窗。测试显示该方案支持检测国内正常状态手机卡,但对国外手机卡(包括欠费卡)存在检测限制。代码示例提供了完整的实现逻辑,包括成功和失败回调处理。该技术适用于需要安全获取用户手机号的Android应用场景。
2025-10-27 18:46:01
311
原创 android 8以上桌面图标适配方案(圆形)
本文介绍了在Android Studio中创建适配不同系统版本的桌面图标的方法。对于Android 8及以上版本,需在res/mipmap-anydpi-v26目录下创建app_icon.xml和app_icon_round.xml,引用SVG转换生成的背景和前景图,并通过调整XML参数优化显示效果。对于Android 8以下版本,则使用传统PNG格式图标。操作步骤包括:在Image Asset Studio中选择SVG源文件生成图标,勾选Round Icon选项创建圆形图标,以及通过XML文件调整图标缩放
2025-10-27 14:50:34
470
原创 CI/CD 学习之路
本文介绍了在本地搭建Jenkins服务运行Android项目的详细步骤。首先说明所需工具:Jenkins、WSL、Docker和ngrok(用于内网穿透)。然后分三步实施:1)通过Dockerfile创建包含Android SDK的Jenkins镜像;2)运行容器并挂载本地SDK目录;3)配置Jenkins,包括安装插件、创建账号等。接着详细说明如何创建Pipeline任务,包括编写构建脚本、配置SSH密钥、补全SDK工具等注意事项。最后介绍了执行构建和查看结果的方法。
2025-08-21 12:50:05
716
原创 aab文件直接安装到手机
摘要:本文介绍通过bundletool工具将AAB文件转换为APKS并安装的方法。首先使用命令将AAB转换为APKS文件,需指定输入AAB、输出APKS、密钥库及相关密码参数;然后使用install-apks命令安装生成的APKS文件。文中详细说明了各参数含义,包括密钥库路径、别名、密码格式等注意事项,并提供了bundletool的官方和CSDN下载渠道。两个命令均需通过java执行bundletool-all-1.17.1.jar工具包完成操作。
2025-08-05 16:56:48
574
原创 Firebase 之 归因
implementation platform('com.google.firebase:firebase-bom:32.8.0') //当前最新版。在Firebase 后台基础配置完成后,下面代码则会生效。如果没有完成配置,则需要去上一篇文章查看。
2025-05-23 16:35:36
546
原创 Google Play 账号创建及材料准备
5:屏幕截图2-8张、高清分辨图标(512*512 px,32位png(含alpha通道)格式)、置顶大图(1024*500 px,假设有50个像素的边缘,主要内容就应该在924*400px的中心方块,JPG或24位png(无alpha通道)格式)4:开发者名称、应用描述(50字符以内)、应用简短说明(80字符以内)、应用详细说明(4000字符以内)、版本新功能说明。11:填写敏感权限说明、审核账号、数据安全配置(必填,重要)9:电话(不给用户显示,用于GP联系)10:隐私政策网址(必填,重要)
2025-05-23 15:54:20
1367
原创 Android App安装列表获取
获取app安装列表,主要有两个地方代码需要配置:一、在AndroidManifest.xml中添加配置,配置分为权限、白名单、action 三种二、在使用前面任意一种配置后,通过API(Java or Kotlin代码)获取安装列表,也有两种API可使用如果可以使用权限,则使用权限+getInstalledPackages 方案没有问题。如果不可以使用权限,需要查询的白名单少,可以使用 Manifest第二种配置方案+getInstalledPackages。
2025-03-19 19:32:52
3471
原创 Android 拍照(有无存储权限两种方案,兼容Q及以上版本)
在某些行业,APP可能被禁止使用存储权限,或公司在写SDK功能,不方便获取权限所以需要有 无存储权限拍照方案。这里两种方案都列出里。对于写入权限,在高版本中,已经废弃, 不可用文件写入读取权限,所以拍照功能也最好使用无权限方式(如果需要获取相册, 需要使用新的权限---媒体权限)
2024-12-06 11:40:55
1097
原创 Android 短信验证码自动填充
本文主要介绍国外google上线的app 短信自动填充方案。本方案主要是使用google提出的,防止开发者使用SMS相关权限造成的用户信息泄露。
2024-09-21 00:21:56
2251
原创 用增之Facebook(二)
b.测试非延迟的深度链接,同样的方法,区别就是单独选择“发送通知”,然后在Facebook App会收到一个通知消息,点击消息进入web页响应链接地址(如果是个APP scheme,则会提示打开APP或直接跳转APP内部)。注意:在facebook事件上报测试平台,当金额为小数点后面为0时(例如1.0),可以正常获取到,但是在小数点后面不为0时(例如1.1),则获取不到,valueToSum 后面没有值,这是正常的,可以在事件详情中看到,实际上value已经上传了。2、同一个账号尽量不要频繁换电脑。
2024-07-04 18:52:51
1454
原创 Android 中东阿拉伯语适配
横向布局 LinearLayout ,可以使用 FrameLayout,控件需要靠左或靠右可以使用 layout_gravity 设置对应属性切换阿拉伯语时,网格布局 item 之间的距离会出现增大问题,处理方法是:网格分割线 ItemDecoration 需要加入语言来判断,调换原来设置左右的边距即可禁止掉之前的侧滑返回,以免出现冲突一些方向图标,重新做一个相对方向的放到 mipmap-ldrtl-xxxhdpi 包下动画翻转, 放在 anim-ldrtl 将对应的动画进行反向处理。
2024-07-04 13:31:58
1581
原创 用增之Facebook(一)
Facebook相关的网页需要开代理才能访问。Facebook广告投放,分为直投与Web2App。他们共同点是,都是在Facebook的消息列表插入广告,不同点是点击广告后续的处理流程直投:点击广告,直接到达google play 商店。W2A:点击广告,进入web页面,web页面一般展示商品详情,或者内容(例如视频,音乐,小说),在web页面通常会提供下载按钮,到达商店的APP详情页去下载。而下载按钮则会处理一下相关的参数,以及触发DDL的上报。归因:标记当前设备与用户;
2024-07-03 18:13:58
1679
原创 用增之Appsflyer(二)
Log.e(LOG_TAG, "appsflyer 【支付完成】事件回传Success 事件名称:" + getPurchaseName());相同),如果不需要DDL,只上报事件,则不用归因SDK。但实际上,很多事件的处理都依赖于归因,比如支付事件的统计,若没有归因,可能会影响统计。支付件事af_purchase金额与币种(名称可自定义,官方推荐“af_purchase”)金额:af_revenue,币种:af_currency。本篇为事件上报部分(主动上报事件)同样需要说明的重点参数。
2024-07-03 15:49:25
1485
原创 用增之Appsflyer(一)
AppsFlyer可以进行精准的人群定向、优化广告消耗并提升ROI。核心来讲就是归因,让运营指导用户是从哪个广告进行目标的实现。AppsFlyer本身的DDL承接功能以及事件上报,都可以与其他平台关联,比如:tiktok的归因与事件上报,都可以从AppsFlyer后台转发过去,而对于端侧来说,tiktok本身无需任何代码开发,facebook也同理,但facebook本身也有自己的SDK可以实现ddl承接。一、Appsflyer开发 指南1、如果原来有做归因平台,想要切换到Appsflyer,请看指南。
2024-06-05 19:14:53
2243
原创 用增之Firebase
前面讲了google ddl部分,本篇为Firebase的事件上报部分,包括在FireBase平台创建应用 ,用增之Google GA4F。
2024-06-04 17:56:45
716
原创 用增之Google GA4F
google本身自带的能力比较简单,在此我们讲述Google 根依赖firebase获取ddl的能力,也就是GA4F ,全称Google Analysis For FireBase。广告->google play 下载页->启动app后获取到ddl,最后是根据ddl 在代码中判断下一步操作,比如上报日志,请求接口,或者跳转商品详情页等。** Google DDL 开发分为两步,第一步先把google本身的能力处理顺当,然后需要firebase sdk的接入。
2024-06-03 19:16:59
813
原创 Android海外用户增长
做海外app的【用户增长】功能必经之路,Google的FireBase、AppsFlyer、Facebook、Tiktok,Message等SDK可能都需要接触,以上SDK是我们在海外推广APP,提升用户活跃等需求的主要手段。本文只介绍AppsFlyer(下文简称AF)、Facebook、FireBase三家SDK。其余的如Tiktok 用增能力,本身并没有自己代码,也是使用AF SDK。
2024-06-03 16:36:13
1055
原创 EditText 换行限制失效
在Android的输入控件EditText 通过android:maxLines=“2”限制行数的时候,点击输入键盘的回车键,行数还是会超出2行,主要解决方式就是,换掉这个回车键按钮的功能,并给EditText设置一个文本类型限制android:imeOptions="actionDone"android:inputType="textMultiLine"android:maxLines="3"或者自定义他的点击事件android:imeActio...
2024-05-31 11:16:41
486
原创 activity-alias 的使用及若干问题
一、使用方法步骤1、 在AndroidManifest.xml 中添加以下代码步骤2、代码控制切换二、 注意点1、android:enabled="false"2、当前标签在AndroidManifest.xml 的注册位置一定要在目标activity(android:targetActivity="")之后.3、android:launchMode 启动模式根据项目中的实际情况而定。singleTask会出现app从后台返回后跑到了首页或者某个主页,一般singleTop就
2023-03-06 18:52:27
3782
原创 鸿蒙系统——popupwindow 布局参数失效
Theme的android:fitsSystemWindows="false"或者删除,默认为false。在popupwindow中 使用 paddingStart paddingBottom 这种参数后,未起作用。经过查看 发现是因为activity的Theme中有以下属性。鸿蒙系统(华为手机 mate20 pro)这个参数的属性,否则会在部分手机中失效。布局中不使用提示添加。
2023-02-08 11:59:21
685
原创 .9图片的问题总结(Android studio制作):
用Androidstudio编辑.9图片有问题?创建之后无法通过编译?点9图片变形?设置.9图片为背景后容器内容无法正常展示? Come on,看这里吧!
2022-11-03 18:12:01
974
转载 手动安装Android abb 包方法
由于现在上传Google play 只需要上传.aab文件,不需要在上传apk的安装包然而在测试中只需要对apk的包进行测试,aab的包虽然在理论上与apk的包是相同的,但是在测试到上线过程中缺少对aab包的测试过程安装aab包需要几个步骤,需要将aab的包转化成apks格式后进行安装需要一个必要条件bundletool下面是bundletool的安装方法与重新打apks包的方法1.安装bundletool$ brew install bundletool2.切换到安装...
2021-07-20 12:09:57
3259
原创 Android EditText 换行 BUG (自动换行与限制行数)
在Android的输入控件EditText 通过android:maxLines=“2”限制行数的时候,点击输入键盘的回车键,行数还是会超出2行,主要解决方式就是,换掉这个回车键按钮的功能,并给EditText设置一个文本类型限制android:imeOptions="actionDone"android:inputType="textMultiLine"android:maxLines="3"或者自定义他的点击事件android:imeActio...
2021-06-30 12:44:33
3468
1
原创 Android事件分发(刷新认知,带你远离网络上的错误知识)
1、所有层级的 分发器(dispatchTouchEvent())返回true时,事件直接结束2、所有层级的 ,消费器(onTouchEvent()) fan hui
2021-06-11 17:15:53
552
4
原创 创建一个悬浮窗 Activity(或者无界面Activity)
创建一个无界面或者悬浮窗的Activity创建一个style <style name="OnePxActivityStyle" parent="Theme.AppCompat.Light.NoActionBar"> <!-- 窗体背景颜色为透明 --> <item name="android:windowBackground">@android:color/transparent</item> <!
2020-11-20 11:40:13
3054
1
原创 Nfc 开发记录总结
整个篇幅 上面为代码,最后面为介绍,如果想直接看我遇到过的坑,点击目录第二条,先来个NDEF写入代码:主要在Activity中的生命周期中调用
2020-11-16 17:28:20
2183
8
原创 PopupWindow与状态栏之小米适配
在Android手机中页面对状态栏做了侵入式展示,但是弹窗的时候,PopupWindow并没有进入状态栏,导致状态栏别具一格的颜色。解决方法一、适用于大多数手机,但是小米新机型例外 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { popupWindow.setIsLaidOutInScreen(true); } else { fitPopupWindowOverStatusBar(popupWindow, tru
2020-10-23 13:51:27
1031
原创 Android 组件化+ARouter 开发之路
本文主要做一个记录,搭建组件化+ARouter+MVP 框架过程中遇到的一些问题一、参考资料1、https://www.jianshu.com/p/8098961bd30c2、https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247488201&idx=1&sn=eaefec375237a51726aaa4089e5fc670&source=41#wechat_redirect3、ht
2020-09-14 15:42:45
1098
原创 Mac 下 Git命令以及相关作用
用着 Mac Androidstudio开发Android,好多知识 会比用window系统开发的要少,最近遇到一个问题:使用 git 进行版本管理时,改动的文档并没有被我所使用的版本管理工具(我用的SourceTree)所捕获到,而且在studio上面进行提交的时候,也没有找到git的选项,为此找了好半天。可能是我刚开始理解错了:用git命令进行操作文件,无论用什么版本工具,都会与之同步;也就是说所有git版本管理工具若出现对文件失控,都可以用git 命令进行调整。先排查,根目录中的.git文件是
2020-09-08 15:41:55
381
原创 通过Activity的名字获取他所在的包名以及进程processId
在上面文章中,有一个操作是在同项目中切换进程,解决新进程冷启动的黑白屏问题,中间的时候我有想过判断这个新的进程是否启动,如果已经启动,则不显示loading,如果新的进程未启动,则不弹出loading。这里面需要先去获取到将要跳转的activity所在的进程Id,再去判断是否启动。虽然最后因为这个操作有点儿耗时,中间有将近一秒的耗时,最后放弃了判断,但是还是拿出来给大家分享一下这个知识点,因为我在网上并没有搜到这个操作:1、先去获取到将要跳转的activity所在的进程Id ...
2020-08-26 13:53:25
1181
原创 优化同一项目,不同进程切换时的用户体验
需求怎么来的项目中处理新进程的冷启动,之前一直是通过一下方式去设置的,一张启动页面的图片设置为window的背景,但是这种方式最近被我们领导吐槽了... <style name="AppTheme.Launcher.Main" parent="@style/AppTheme"> <item name="android:windowBackground">@drawable/load</item> </style> ..
2020-08-25 19:00:00
262
原创 错误 The application could not be installed: INSTALL_FAILED_CONFLICTING_PROVIDER
一次偶然,调试百度推送Demo时出现这个问题:INSTALL_FAILED_CONFLICTING_PROVIDERList of apks:[0] '/Users/****/Downloads/Baidu-Push-SDK-Android-L2-7.0.0.27/PushDemo_AS/app/build/outputs/apk/debug/app-debug.apk'Installation failed due to: 'null'网上查了很多地方,大多是说AndroidMani.
2020-08-04 10:53:54
2489
原创 Android 开发过程中遇到的一系列问题(持续更新)
目录os.Handler 篇os.Handler 篇工程中使用的大多是android.os 包里面的Handler Handler 发送不成功,或者 Handler 内部handlerMessage 方法未响应: 一、检查发送的方法是否使用的 send 开头的方法,请勿直接调用handlerMessage(), 二、Handler Looper被关闭,检查代码,或者直接在创建Handler的时候传入一个线程Looper if (mhandler == null) { ..
2020-05-15 10:34:44
437
bundletool-all-1.17.1.jar, aab安装工具
2025-08-05
华为折叠屏应用开发指导v1.0(最新版本).pdf
2019-10-15
自定义折线图Demo
2019-02-18
Sublime Text(Mac)
2019-01-08
AnimatedGifEncoder NeuQuant LZWEncoder源码(图片处理)
2018-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅