android
SerBad
这个作者很懒,什么都没留下…
展开
-
使用python为aab签名和生成apk
生产aab格式的文件后,为了上传到google play还需要签名的,还有从生成aab到生成可以安装用的apk要花蛮多步骤的。所以,这里用Python做下自动化简化下步骤其中是来自于https://github.com/google/bundletool/releases 可以替换成你自己需要的jar使用方法是:或者,在Android项目中的,新建一个task,可以替换成自己需要的文件目录然后使用下面的命令就可以上传了。本项目地址存放在,https://github.com/SerBad/RunB原创 2022-07-06 14:39:30 · 1167 阅读 · 1 评论 -
使用python自动上传apk到蒲公英
新建文件,代码如下在Android项目中的,新建一个task,可以替换成自己需要的文件目录需要注意的是,新版本的apk不在outputs下面了,是在下面。然后使用下面的命令就可以上传了。原创 2022-07-06 13:26:57 · 957 阅读 · 0 评论 -
Messenger传输大的数据
Messenger作为跨进程,是很常用的方法,轻便,已经基于AIDL做了很多的封装了,但是这个方法只能传输比较小的数据,如果要传输大一些的数据咋办呢?可以使用Bundle.putBinder,我这里做个记录:首先创建一个aidl,GetLargeOne.aidl// GetLargeOne.aidl// Declare any non-default types here with import statements//为了解决传输数据量很大的时候处理的情况interface GetLarge原创 2021-10-09 16:07:09 · 303 阅读 · 0 评论 -
Room数据库迁移记录
记录一下Room数据库迁移过程中遇到的问题。要迁移Room数据库,只要需要实现androidx.room.migration.Migration即可。下面记录三种情况修改表的结构object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { // 创建新的临时表 database.execSQL("CREATE TABLE publish_post_bea原创 2021-02-23 14:56:53 · 320 阅读 · 0 评论 -
Android使用ActivityResultContract
从AndroidX的Activity 1.2.0-alpha02 和 Fragment 1.3.0-alpha02开始,startActivityForResult被标注为弃用了,因为多了一种新的办法,这里做个记录。新建一个自己的契约类ActivityResultContract,继承自ActivityResultContract,写上自己要传入的参数和要返回的结果。class PersonalActivityResultContract : ActivityRe原创 2021-02-23 14:45:13 · 1666 阅读 · 2 评论 -
分享一段ViewPager2中RecyclerView滑动的问题
在ViewPager2中插入RecyclerView,滑动过于敏感,下面记录一种方法,其实就是重新处理事件分发。原创 2021-01-28 10:19:23 · 903 阅读 · 1 评论 -
ViewModel中传入Context的方法
ViewModel使用的越来越多了,严格来说,官方并不建议你在ViewModel中添加Context的引用。同时,ViewModel的构造方法是没有任何参数的,有的时候会很不灵活。以下记录两种方法。#1.通过kotlin的拓展函数fun <T : ViewModelProvider, V : ViewModel> T.get( key: String, modelClass: Class<V>, context: FragmentActivity):原创 2020-12-24 16:29:41 · 4615 阅读 · 2 评论 -
分享一段Android权限设置的代码
检查是否有通知栏权限NotificationManagerCompat.from(context).areNotificationsEnabled()打开通知栏权限设置页import android.content.Contextimport android.content.Intentimport android.net.Uriimport android.os.Buildimport android.provider.Settingsobject NotificationUtil {原创 2020-11-23 14:41:16 · 552 阅读 · 0 评论 -
新版gradle移除versionCode和versionName的问题
从com.android.tools.build:gradle:4.1.0开始,build.gradle文件正式移除了versionName和versionCode,参照链接。如果依然需要BuildConfig.VERSION_NAME的话,可以使用如下方式buildConfigField "int", 'VERSION_CODE', String.valueOf(1)buildConfigField 'String', 'VERSION_NAME', "\"" + "1.0.0" + "\""但原创 2020-11-23 14:29:51 · 1234 阅读 · 0 评论 -
Android一个标签页的实现
最近要实现一个类似于下面的页面想着每次都要自己重新写,太麻烦了,这里记录一下自己写的自定义的view。一开始本来准备用ConstraintLayout的,但是这货addview的时候总有bug,就用RelativeLayout了。package com.android.demo.viewimport android.content.Contextimport android.util.AttributeSetimport android.view.Viewimport android.wid原创 2020-11-02 11:25:38 · 560 阅读 · 0 评论 -
多模块下的页面跳转
在多模块下或者组件化下,页面跳转是比较麻烦处理的一个地方,下面记录一下跳转的方法。以下应用包名统一用com.android.demo来指代。BroadcastReceiver使用广播是最简单的办法,可以通过注册广播来处理页面跳转。需要注意的是,从7.0开始广播开始受到限制,对于应用广播,可以用以下方法,到10.0及以下都是可以在多种机型上可以的。同样的,也可以用Activity来处理。基本逻辑是一样的,这里不再赘述。在AndroidManifest.xml,permission和uses-permis原创 2020-06-11 14:13:16 · 681 阅读 · 0 评论 -
Android子模块下productFlavors的配置
以下文章说明中,_android、_test、_google代表的是Flavors,debug和release代表的是buildTypes,提前说明,根据你自己的项目需要,也许有所不同。在多模块下,子模块的Flavors该如何设置呢?其实不用什么特别的设置,只需要子模块保持和主模块一样的Flavors就行,然后按照以下来引用就好了。需要注意的是,两者要保持一致,只许子模块比主模块的Flavors...原创 2020-04-20 15:33:39 · 2072 阅读 · 0 评论 -
Android透明度百分比对应的十六进制
Android透明度百分比对应的十六进制原创 2019-11-25 23:23:45 · 513 阅读 · 0 评论 -
Android关于裁剪图片透明区域的算法
最近项目中遇到这么一个需求,需要裁剪掉图片的透明区域。找了很久,最后确定,只能通过自己读取Bitmap的像素点来读取图片的边界来裁剪。下面记录一下过程。原图如下PorterDuffXfermode最开始想的是使用PorterDuffXfermode来处理,因为这种方式其实很快的,但是,虽然这种方式可以用来处理图片,但是无法满足获取图片边界的需求。代码如下: public stati...原创 2019-05-27 17:12:04 · 1972 阅读 · 3 评论 -
Android加载animated webp的控制和Glide加载GIF
因为动态的webp使用的也越来越多了,所以这里记录一种加载处理的办法。目前常用的Android图片加载库,只有fresco是可以直接加载animated webp的。那么如何处理呢?记录一下,不然坑都白踩了。本质上webp和gif都是一组图片组成的连续图片,如果要单独解析每一帧怎么办呢。Android支持如果要拿到webp的第一帧,在Android以上是可以直接使用如下这种方法,默认取的是第一...原创 2019-03-08 13:26:52 · 1425 阅读 · 0 评论 -
Glide4的一次踩坑记录
如果你用图片加载库直接加载图片,并不需要做任何处理,那么,其实大多数时候你用任何加载库并没有太大的区别。一旦你需要处理各种各样的图片的时候,你就会遇到各种各样的问题了。这里记录一个关于Glide的问题,一下都是Glide4.9版本。在Glide中加载图片,可以很简单,类似于这样就可以了: Glide.with(context) .load(url) .into(im...原创 2019-03-06 15:14:41 · 809 阅读 · 0 评论 -
Android共享元素
在这里记录一下android共享元素的方法,踩了满多坑的,其实蛮简单的,Android共享是从Android5.0开始提供的,之前的版本我没有去碰兼容,但是其实是有解决方法的。这里只是记录一下踩过的坑,不对共享元素做深入的分析。首先从页面A跳转到页面B,那么页面A只需要调用ActivityCompat.startActivity(context, intent, ActivityOption...原创 2019-02-25 11:03:19 · 1023 阅读 · 0 评论 -
android获取屏幕的高低
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-03-30 14:14:23 · 416 阅读 · 0 评论