Android 小知识

记录点零碎的小知识点。

目录

1.BindingView中引用include中的控件

2.将文件复制到手机根目录中

3.android string占位符

4.动态更改shape色值

5.查看apk签名文件信息

6.虚线

7.Kotlin 协程切换

8.使用gradle plugin版本高于4.2时,可能会自动开启资源优化

9.Android 动态设置margin

10.TabLayout移除点击效果

11.约束布局

12.请求体忽略字段

13.去掉字体内边距

14.adb查看当前界面activity名称

15.aab转apk

16.adb查看cup类型

17.adb查看jks公钥

18.查看依赖树

19.adb发送广播携带参数


1.BindingView中引用include中的控件

需要给include一个id,再通过这个id去拿里面的控件id。

        <include
            android:id="@+id/include_mine"
            layout="@layout/item_family_list" />
binding.includeMine.clItemFamily

Databinding依赖

 buildFeatures {
        dataBinding = true
    }

2.将文件复制到手机根目录中

adb push filePath/test.txt /sdcard

3.android string占位符

 <string name="money">金额:%1$s</string>

填充:

String.format(getString(R.string.money),"100")

4.动态更改shape色值

if (view.background != null) {
        (view.background as GradientDrawable).apply {
            this.setStroke(2, colorResId)//设置边框,width为像素
            this.setColor(SysUtil.getColor(colorResId))//设置填充色值
        }
    } else {
        val drawable =
            (SysUtil.getDrawable(R.drawable.shape_stroke_corner8_blue) as GradientDrawable).apply {
            this.setStroke(2, colorResId)//设置边框,width为像素
            this.setColor(SysUtil.getColor(colorResId))//设置填充色值
            }
        val d = view.compoundDrawables
        view.setCompoundDrawablesWithIntrinsicBounds(drawable, d[1], d[2], d[3])
    }

5.查看apk签名文件信息
 

keytool -printcert -jarfile xxx.apk

6.虚线

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <stroke
        android:width="1dp"
        android:color="#979797"
        android:dashWidth="6dp"
        android:dashGap="3dp" />
    <size android:height="0.5dp" />
</shape>

7.Kotlin 协程切换

GlobalScope.launch(Dispatchers.Main) {
    var urlName :String?= null
    withContext(Dispatchers.IO){
        delay(2000)
        urlName = ossRep.upload(view.context, mRequest)
    }
    val mUrl = "${mRequest.getImgRootUrl()}$urlName"
}

8.使用gradle plugin版本高于4.2时,可能会自动开启资源优化

开启资源优化后,资源名称被混淆,会导致补丁工具在生成补丁时一直卡在"开始构建补丁.....",无法正常解析apk包。解决方案:在gradle.properties 中新增android.enableResourceOptimizations=false,重新生成基线包和修复包,然后再生成补丁。

android.enableResourceOptimizations=false

9.Android 动态设置margin

父布局为ConstraintLayout时,如果你想使用原布局中的布局参数,仅仅是想修改marginTop的值,那么可以这样做:

val params = tvHomeLogin.layoutParams as ConstraintLayout.LayoutParams
val top = barHeight + barHeight / 2
params.setMargins(params.leftMargin, top, params.rightMargin, params.bottomMargin)
tvHomeLogin.layoutParams = params

父布局为LinearLayout时,改为线性布局对应的布局参数就可以了

10.TabLayout移除点击效果

设置下面属性即可

app:tabRippleColor="@color/transparent"

11.约束布局

layout_constraintHorizontal_bias 水平偏移
layout_constraintVertical_bias 垂直偏移

当控件因为wrap_content,top_toTop及bottom_toTop导致的居中时,可以用偏移量改变控件位置

12.请求体忽略字段


    @Transient
    var selected: Boolean = false

13.去掉字体内边距

<item name="android:includeFontPadding">false</item><!-- 去掉字体内边距 -->

        有时候UI设计师不会考虑字体自带的内边距,然而我们的字体基本都是有内边距的,所以我的想法是在app的主题中去掉字体内边距。

14.adb查看当前界面activity名称

查看activity:

 adb shell dumpsys window windows | findstr "Current"
adb shell

    dumpsys activity | grep -i run

mac有效:

adb shell "dumpsys window | grep mCurrentFocus"

查看fragment:

adb shell "dumpsys activity top | grep '#0: ' | tail -n 1"

15.aab转apk

示例:

java -jar  bundletool-all-1.8.2.jar build-apks --bundle=/Users/xwk/Documents/谷歌上架/aab/app-release.aab --output=/Users/xwk/Documents/谷歌上架/aab/test.apks  --ks=/Users/xwk/Documents/谷歌上架/aab/xx.jks --ks-pass=pass:123456 --ks-key-alias=xxx --key-pass=pass:123456

安装:

java -jar E:\BoundleTool\bundletool-all-1.11.2.jar install-apks --apks=D:\ProjectWork\ProjectWorkSurvaval2\SourceCode\APK\YouLoft\9.26\MountAndMagic9.26.apks

16.adb查看cup类型

adb shell getprop ro.product.cpu.abi

17.adb查看jks公钥

keytool -importkeystore -srckeystore app/mxchip_bta.jks -destkeystore app/mxchip_bta.jks -deststoretype pkcs12

18.查看依赖树

 ./gradlew :app:dependencies --configuration compile

19.adb发送广播携带参数

adb shell am broadcast -a xxx.xxx --es intentKey "intentValue"

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值