Android 小知识

时间:2025-01-25 19:00:48

记录点零碎的小知识点。

目录

中引用include中的控件

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

string占位符

4.动态更改shape色值

5.查看apk签名文件信息

6.虚线

协程切换

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

动态设置margin

移除点击效果

11.约束布局

12.请求体忽略字段

13.去掉字体内边距

查看当前界面activity名称

转apk

查看cup类型

查看jks公钥

18.查看依赖树

发送广播携带参数

20.下载不到远程库怎么办



中引用include中的控件

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

        <include
            android:
            layout="@layout/item_family_list" />

Databinding依赖

 buildFeatures {
        dataBinding = true
    }

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

adb push filePath/ /sdcard

string占位符

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

填充:

(getString(),"100")

4.动态更改shape色值

if ( != null) {
        ( as GradientDrawable).apply {
            (2, colorResId)//设置边框,width为像素
            ((colorResId))//设置填充色值
        }
    } else {
        val drawable =
            ((.shape_stroke_corner8_blue) as GradientDrawable).apply {
            (2, colorResId)//设置边框,width为像素
            ((colorResId))//设置填充色值
            }
        val d = 
        (drawable, d[1], d[2], d[3])
    }

5.查看apk签名文件信息
 

keytool -printcert -jarfile 

6.虚线

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

协程切换

() {
    var urlName :String?= null
    withContext(){
        delay(2000)
        urlName = (, mRequest)
    }
    val mUrl = "${()}$urlName"
}

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

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

=false

动态设置margin

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

val params =  as 
val top = barHeight + barHeight / 2
(, top, , )
 = params

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

移除点击效果

设置下面属性即可

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的主题中去掉字体内边距。

查看当前界面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"

转apk

示例:

java -jar  bundletool-all-1.8. build-apks --bundle=/Users/xwk/Documents/谷歌上架/aab/ --output=/Users/xwk/Documents/谷歌上架/aab/  --ks=/Users/xwk/Documents/谷歌上架/aab/ --ks-pass=pass:123456 --ks-key-alias=xxx --key-pass=pass:123456

安装:

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

查看cup类型

adb shell getprop 

查看jks公钥

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

18.查看依赖树

 ./gradlew :app:dependencies --configuration compile

发送广播携带参数

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

20.下载不到远程库怎么办

解决思路:
直接去maven或者jitpack上去找源头,看看到底存在不存在,再看是否是下载资源问题
/
/

找到后,再看对应的版本对不对。

需要下载jar或者aar包的话jitpack可以这么拼:

Central Repository: com/github/tencent/VasSonic/1.1