自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JiaoJunfeng

你认为的完美,是因为你的弱小与狭义

  • 博客(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

原创 git忽略文件不生效解决方案

如下面命令报错 请查看(

2024-05-24 10:01:44 1389

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

原创 AIDL 应用间简单通信demo及基本问题

AIDL入门

2023-01-17 20:10:11 1298 2

转载 ADB WIFI无线安装调试 (区分新版手机、旧版手机)

ADB WIFI无线安装调试

2023-01-05 13:53:10 3590

原创 ViewPager.OnPageChangeListener有坑

viewpager 的页面切换监听以及滑动方向的判定

2023-01-05 13:48:58 392

原创 .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&amp;idx=1&amp;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安装工具

具体使用方法,请查看文章 https://blog.csdn.net/JiaoJunfeng/article/details/149940602 工具使用命令 1:文件转换 java -jar bundletool-all-1.17.1.jar build-apks --bundle=1.1.16-alend-release_gp.aab --output=tr_alend.apks --ks=file.jks --ks-pass=pass:1234567890 --ks-key-alias=Alias --key-pass=pass:1234567890 2:安装apks 安装apks格式应用 java -jar bundletool-all-1.17.1.jar install-apks --apks=tr_1_1_1.apks

2025-08-05

华为折叠屏应用开发指导v1.0(最新版本).pdf

本文档为华为官方的华为折叠屏适配文档,同时也可以用于其他的大多数厂家的折叠屏(虽然目前就一个三星也出了折叠屏),1.0版本 文档中可能会遇到一些问题,请关注博客

2019-10-15

自定义折线图Demo

本资源为自定义折线图demo代码,另有本人博客说明整个自定义控件的大题思路,做了一些简单的介绍。 本资源为自定义折线图demo代码,另有本人博客说明整个自定义控件的大题思路,做了一些简单的介绍

2019-02-18

扇形统计图代码.zip

资源对应博客,自定义控件的使用代码,需要在本人博客中查看具体使用步骤, 资源对应博客,自定义控件的使用代码,需要在本人博客中查看具体使用步骤,

2019-09-20

Sublime Text(Mac)

这是一个 Mac版 编写文本的工具,可以用来编写代码,比如Python,等也可以用于其他方面的一些文本工作,本软件为免费版本, 这是一个 Mac版 编写文本的工具,可以用来编写代码,比如Python,等也可以用于其他方面的一些文本工作,本软件为免费版本,

2019-01-08

AnimatedGifEncoder NeuQuant LZWEncoder源码(图片处理)

AnimatedGifEncoder.java源码 NeuQuant源码。LZWEncoder源码 用于java Android处理图片。 包括三个类的使用方法

2018-10-26

热更新(添加补丁—dex文件).xmind.zip

这是一个 Xmind 思维导图,主要讲解了热更新涉及的源码以及逻辑,具体的热更新代码讲解,可以查看我的博客

2019-10-30

空空如也

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

TA关注的人

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