![](https://img-blog.csdnimg.cn/20210913223130287.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android技术
文章平均质量分 80
Android相关技术
柯基爱蹦跶
曾梦想仗剑走天涯,后来怕社保断缴一直没出发。
文内的学习过程中遇到障碍或问题,欢迎直接评论交流或向我私信提出。
展开
-
Android 13中的 Open Mobile API
SE 也就是 Secure Element,译为 “安全元素”主要应用场景在 手机手表交通卡、门禁、虚拟钱包、虚拟SIM卡,以及其他身份认证的且对安全级别有一定要求的业务。原创 2022-11-17 15:02:05 · 4965 阅读 · 25 评论 -
Android eSIM-LPA基于Android13的实现
从 Android9 开始,Android 框架为访问 eSIM 和管理 eSIM 上的订阅配置文件提供了标准 API。借助这些 eUICC API,第三方可以在支持 eSIM 的 Android 设备上开发自己的运营商应用和 Local Profile Assistant (LPA)。原创 2022-11-17 14:53:33 · 6184 阅读 · 23 评论 -
Android13 Windows11-VMware-Ubuntu 源码下载和全编译
- 推荐使用 [Ubuntu 18.04 (Bionic Beaver)](https://releases.ubuntu.com/bionic/)、 Docker、Linux- 2021年6月22日起,不再支持 Windows 或 MacOS 上构建- 2020年1月1日起,不再支持 python2,请使用 python3原创 2022-09-19 17:41:16 · 3541 阅读 · 0 评论 -
Compose 使用fillMaxWidth-fraction百分比显示不全
Compose fillMaxWidth fraction 使用原创 2022-06-08 19:37:11 · 1001 阅读 · 1 评论 -
Android aab的打包、调试、安装
前言Google Play在今年3月发出了一个 Google Play新政策通知,即在今年8月后新应用必须以 API 级别 30 (Android 11) 为目标平台,并使用 Android App Bundle(aab)发布格式,对于现有应用是不受强制影响的。如果我没记错的话,早在18年Google就已经提出了aab这个东西,那么对于这次提到的Android APP Bundle直接带来的好处也是清晰明了的,我直接给撸过来了:Android App Bundle:Google Play 使用原创 2021-07-14 17:50:47 · 27224 阅读 · 0 评论 -
Android FaceBook登录接入--散列密钥获取
官方提供的方法如下: /** * 根据签名文件获取散列密钥 * 注意: 如果debug和release签名文件不一致,需要重新生成配置到Facebook */ public static String getHashKey(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo(context.getPack原创 2020-08-19 15:23:55 · 1519 阅读 · 0 评论 -
Android 用于网络状态判断的NetworkCapabilities的3种解决方案
前言如今在Android 7.0版本以上判断网络是否可用,一般采用会ConnectivityManager.NetworkCallback,对其回调内NetworkCapabilities包含的Transports或Capabilities进行判断的方案,Android官方文档。经测试,有3中方案可行。例如以下是一次状态回调包含的内容:Transports: WIFI|VPN // 这个尤为重要Capabilities:NOT_METERED&INTERNET&NOT_RES原创 2021-04-25 19:00:04 · 14214 阅读 · 3 评论 -
Android Compose中获取Context
前言当前版本: 1.0.0-alpha11写代码时想在click事件里弹个Toast,无奈发现如下这段代码无法通过编译,事实上是Compose里这种引用的写法是不支持的。Button(onClick = { Toast.makeText(this@MainActivity, "哈哈哈哈", Toast.LENGTH_SHORT).show()}) { Text(text = "点我")}发车先是网上搜了一番,在Stack Overflow上搜到了一篇 How to get原创 2021-02-23 18:35:13 · 6355 阅读 · 6 评论 -
Android shape渐变色用代码怎么写?
前言shape在实际开发中非常常用,一般我们会在xml中使用,但涉及到颜色动态变更时,我们需要在代码中动态创建。xml中的shape,实际上被创建出来后它是一个Drawable,点开Drawable的子类一看,我们很容易就发现一些可疑的实现类(不看需要额外依赖的),我在这里推荐几个。ColorDrawableShapeDrawableGradientDrawable一、ColorDrawable此类适用于只有颜色时的Drawableval tv = TextView(contex原创 2021-01-18 19:40:02 · 851 阅读 · 0 评论 -
Android Jetpack新成员Compose尝鲜
前言Compose的alpha版已经出来有段时间了,前不久的GDG上郭神介绍了Hilt,没曾想居然没有Compose和4.2版本的studio介绍。Compose是google今年在jetpack里新增的一位成员,想着能越过传统的xml,用kotlin代码 + 注解编写布局的形式来构建页面,参照Flutter和iOS的感觉,当然代码也可以即时预览成画面,据我体验下来比传统安装apk快很多,不过比xml预览或Flutter的预览还是慢不少,这个以后应该能优化的。先来看看官网的介绍和代码大致长什么样。代原创 2020-11-28 13:03:51 · 575 阅读 · 0 评论 -
Android 在现有项目中引入Compose
在现有的项目中引入Jetpack Compose,三步配置步骤也可以看 官网。一、配置kotlin版本Compose 从Kotlin 1.4.0 才开始支持plugins { id 'org.jetbrains.kotlin.android' version '1.4.0'}二、配置 Gradleandroid { defaultConfig { ... minSdkVersion 21 // 从API 21开始支持 } // 启用Jet原创 2020-11-28 12:39:49 · 3216 阅读 · 0 评论 -
Android ViewBinding include怎么玩
ViewBinding遇到include的时候怎么玩ViewBinding根据xml来生成单个binding文件,通过资源id来生成对应字段,比如:在fragment_tab_me里引入include_mine_head_layout<!--引入布局--><include layout="@layout/include_mine_head_layout" />使用时可能想到: // 在Fragment使用 override fun onCreateView(infl原创 2020-07-11 14:52:00 · 14061 阅读 · 8 评论 -
Android ViewBinding更新,include得到优化
前言之前的ViewBinding对include很不友好,以至于用起来很是难受,到目前优化后不再强制转换FrameLayout布局,使用更加舒适。解决用之前的例子,直接上代码,这次我们给include的xml加上id:<!--布局 fragment_tab_me--><LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height原创 2020-11-11 15:55:57 · 3657 阅读 · 1 评论 -
Android 用groovy在gradle自定义字段方法实现一键切换versionName版本
一、问题:在平时开发中经常会对某些项目状态进行变更,通过debug状态来区分环境,代码里通过BuildConfig,但gradle里却没有类似的方法,下面演示了如何在gradle文件里自定义一个字段实现状态切换(主要是groovy不够熟悉)例如Android文件里判断环境:if (BuildConfig.DEBUG) { // TODO: xxx}else{ // TODO: xxx}以上情况在代码里使用确实很方便,但如果转移到build.gradle里,比如输出版本类型,就只有在bui原创 2020-08-19 16:12:12 · 595 阅读 · 0 评论 -
Android 组件化实现之手撸步骤
在App功能逐渐冗杂的今天,衍生出很多优化方案,组件化作为其中一种方式也被广泛应用。抛开那些第三方,简单手撸一次实现组件化的通信,也更利于学习第三方的开源框架,下面来一步一步实现。——2019.3.4一、准备工作首先我在创建完project后,除了默认创建的app model,另外创建了两个model:LoginComponent和MineComponent。(component就是组件的意思,相信来到这里的朋友都是了解过组件化原理和一些相关术语,这里就不再赘述)在创建完两个单独的compo原创 2020-08-19 15:34:41 · 672 阅读 · 0 评论 -
Android 友盟分享自定义面板使用
一、说明1. 友盟分享涉及到比较重要的类ShareAction:分享的主类SHARE_MEDIA:枚举类,定义了可分享平台的类型PlatformName:定义了所有可分享的平台名称Platform 里比较特殊的一个“MORE”,说明一下,这个按钮会自动调起Android原生的分享,也就是Intent.SEND,但是有个比较坑的地方(PlatformName没有支持英文,也不支持修改,只能通过增加自定义按钮解决)。2. 分享方式方式一:使用ShareAction.share(); 调起原创 2020-06-04 19:49:46 · 3685 阅读 · 0 评论 -
Android TabLayout指示器宽度随tab内容
在之前support(android.support.design.widget.TabLayout)包下的TabLayout是没有提供修改指示器宽度的,需要在onMesure里反射修改。但是现在material(com.google.android.material.tabs.TabLayout)下的TabLayout是有提供一个属性,确定指示器宽度是否随tab内容变化的。可以直接在xm...原创 2020-04-21 23:34:08 · 712 阅读 · 0 评论 -
Android 获取手机图库最新一个视频或照片的缩略图
在Android上缩略图分为两种,通过读取KIND字段来获得,分别为MICRO_KIND和MINI_KIND分别为微型和迷你两种缩略模式,前者的分辨率更低。如果查询照片,把包从video换成images就行了Uri originalUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;ContentResolver cr = this.getCo...原创 2019-12-26 17:37:41 · 897 阅读 · 0 评论 -
Android 动态权限判断是否允许的几种方式及测试
一、说在前面由于各个系统厂商定制,checkSelfPermission在有些机型上是始终为0的(也就是允许),这个问题非常头疼嘞,于是手持一加对三种方式进行了测试。以read_sms权限为例二、检查方式常用的检查ContextCompat.checkSelfPermission(context, permission)println("self权限: $permissionSta...原创 2019-11-18 17:46:00 · 2987 阅读 · 0 评论 -
Android 占位式插件化原理实现(三) 如何在插件APP中使用动态广播
写在前面 前面实现了插件APP的Activity和Service的启动,今天咱来说一下动态广播的使用。还是老套路:使用宿主环境注册和发送,基于宿主Activity注入到插件Activity的Context。一、项目目录新增文件宿主APP新增广播接收代理类插件APP新增广播接收类接口标准新增广播标准...原创 2019-11-15 16:45:52 · 120 阅读 · 0 评论 -
Android 占位式插件化原理实现(二) 如何在插件APP里启动service
a原创 2019-11-15 11:33:27 · 214 阅读 · 0 评论 -
Android 占位式插件化原理实现(一) 如何实现拉起插件apk
一、说在前面1. 我所理解的插件化实现原理 初步认识插件化实现Activity跳转,其实就是在一个宿主APP中,通过dexClassLoader加载一个未安装的apk资源(其中包含class和resource),然后利用包名全类名做隐式跳转拉起这个未安装apk内的Activity,未安装的apk所有页...原创 2019-11-12 18:16:45 · 630 阅读 · 0 评论 -
Android gradle配置抽取合并
一、为什么要合并 当项目中model或library变多过后,比如用到组件化或者引入第三方库需要配置多个build gradle文件,一旦需要统一其SDK或者其他组件版本就需要同时修改多个文件,这确实很麻烦,所以抽取gradle配置非常有必要。抽取过后如果想修改版本, 只需修改公共文件的就可以了。二、怎么操作文件...原创 2019-11-11 13:54:28 · 1195 阅读 · 0 评论 -
Android Facebook登录,进来看就对了
一、流程Facebook Developers面板创建应用和基本配置集成Facebook SDK 或者 使用依赖配置(二选一即可)编辑资源和清单开发秘钥散列的获取和配置使用登录二、开始 一、Facebook Developers面板创建应用和基本配置 1. 地址:Facebook登录...原创 2019-09-19 12:26:05 · 1974 阅读 · 2 评论 -
Android 简单定位----Google Location Service的使用
这段时间做国外地理定位,在项目中只需要用到定位,并不需要地图的其他服务,于是先使用了Android原生的位置获取,使用挺方便的,但是到最后死活获取不到postalCode(邮政编码),于是准备搞Google的位置服务试试。一、先了解一下文档中的注意事项 &nbs...原创 2019-08-06 17:44:47 · 10301 阅读 · 24 评论