Android知识库
winter_jay
这个作者很懒,什么都没留下…
展开
-
PopupWindow属性说明
isOutsideTouchable:点击区域外可关闭弹框默认情况下,点击区域外会触发点击到的控件事件。比如:点击弹框区域外的button时,首先弹框会关闭,其次会执行button的事件。如果只想让弹框关闭,不想执行button事件,配置如下属性即可。isFocusable=true...原创 2022-01-10 16:23:51 · 1455 阅读 · 0 评论 -
Android Studio Kotlin版本兼容
1.build.gradle中的kotlinVersionval kotlinVersion = "1.3.**"2. Android Studio中kotlin插件版本在File-Settings中搜索kotlin plugin,查看版本3.保持一致原创 2021-12-17 16:07:34 · 8430 阅读 · 0 评论 -
Android 查看gradle及gradle 插件版本
查看gradle版本:在C:\Users\你的电脑用户名.gradle\wrapper\dists 这个文件中的版本号就是你的gradle 版本查看gradle插件版本:build.gradle文件中的com.android.tools.build:gradle即是插件版本gradle插件版本和gradle版本有严格的对应关系:Android Gradle 插件版本说明 | Android 开发者 | Android DevelopersAndroid Studio...原创 2021-12-17 10:51:18 · 6035 阅读 · 1 评论 -
adb命令查看环境变量
1.打开cmd2. path环境变量可以直接输入path3.自定义环境变量需要用set命令查看。eg: set MY_PATH原创 2021-12-14 16:52:56 · 1046 阅读 · 0 评论 -
No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi
AS切换一个项目分支后,build项目出现No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi问题。网上有很多关于添加toolchains的方法。我这里是另一种情况。因为项目没有用到ndk,所以把sdk manager中的ndk取消勾选即可。...原创 2021-12-16 17:43:33 · 661 阅读 · 0 评论 -
Android Textview 控件偏移
在Android中使用Textview控件时,会发现偏移的场景。典型的场景就是在LinearLayout父容器中有多个Textview水平排列,当其中一个Textview内容过长换行时,这个Textview就会出现偏移。如下图:可以看到第2个Textview控件已经向下偏移了。出现这个问题的原因是LinearLayout有系统默认属性baselineAligned=true,也就是基线对齐的意思。系统是好意的,但是当有个textview换行时,就不是我们想要的结果了。所以我...原创 2021-11-09 17:33:10 · 3662 阅读 · 0 评论 -
使用kotlin一些问题总结
1.Name shadowed名称遮蔽fun inc(num : Int) { val num = 2}原创 2021-11-01 11:22:09 · 2926 阅读 · 0 评论 -
AndroidStudio 打patch
1.通过git命令打patch即:gitdiffapp/srcapi/src20impl/src>1.patch原创 2021-06-15 16:05:42 · 1375 阅读 · 1 评论 -
Android Studio 下载ndk
在配置文件中写了ndk版本android {compileSdkVersion(28)ndkVersion = "21.3.6528147"}构建时报错。无法下载此版本。原因:网络问题。方案:在这个网址找到了解决办法:http://ping.chinaz.com/dl.google.com这个地址会列出一个ip列表,挨个ping,找一个响应时间短的。然后修改host文件,就可以下载sdk了。host文件的位置在:C:\Windows\System32\driv.原创 2021-04-16 10:00:33 · 1727 阅读 · 0 评论 -
Android selector 失效原因及OnTouchListener使用selector方案
1. selector资源xml中,默认资源放在最后一行;2. selector xml和png资源不能重名3. 监听View.OnClickListener事件 。我的例子中就是监听的OnTouchListener事件,导致selector失效。原创 2021-04-08 14:22:57 · 515 阅读 · 0 评论 -
recyclerview 在ConstraintLayout中显示不全,滑动不到底部问题
在ConstraintLayout布局中添加RecyclerView,出现RecyclerView数据显示不全的问题,且向下滑动,不能滑到底部。网上的方案是在RecyclerView外部添加一个RelativeLayout,经过验证不能成功,有如下两种结果。1.RelativeLayout的layout_height为wrap_content,效果和之前一样。2.RelativeLayout的layout_height为match_parent,数据能显示全,可以滑动到底部。但是,此时Rec..原创 2020-09-16 18:03:52 · 2721 阅读 · 4 评论 -
Android多语言布局layout
1. 定义某种具体的语言资源layouteg:layout-ar2. 同意放在layout-ldrtl目录eg:layout-ldrtl3.android:supportsRtl属性eg:Activity/Application标签android:supportsRtl="true"4.android:layoutDirection属性eg:view布局中android:layoutDirection="rtl"5.优先级layout-ar(语言级别) >...原创 2020-05-12 11:29:10 · 1686 阅读 · 0 评论 -
不知道包名/类名的情况下,通过adb命令打开应用
通过adb命令打开应用1. 不知道应用的包名 adb shell pm list package 通过该命令查找所有的包名 2. 不知道应用的activity名 adb shell dumpsys package pkgName 通过该命令找到Activity Resolver Table,里面有activity的详细信息 3. 启动activity...原创 2020-05-07 09:36:11 · 2771 阅读 · 0 评论 -
SurfaceView 初始化时机
通过findViewById 创建SurfaceView 对象后,并不会初始化。 SurfaceView.getHolder().addCallback(callback);调用该方法后,SurfaceView 才会被初始化,回调surfaceCreated方法...原创 2020-04-21 14:50:54 · 689 阅读 · 0 评论 -
Gradle系列之初识Gradle
准备一个 Gradle 版本,下载之后进行解压,解压之后的目录说明如下bin:gradle批处理文件docs:说明文档init.d:初始化的脚本文件lib:相关库media:自带的图标资源samples:案例src:源文件getting-started.html:入门指导链接LICENSENOTICEGradle WrapperWrapper 是对 Gradl...转载 2020-04-17 11:41:25 · 87 阅读 · 0 评论 -
Android 图标置灰
Android中实现图标置灰效果:1. 切一个置灰的UI资源2.setAlpha,setImageAlpha更改透明度对于图片在效果图上有效,在真机上效果不明显问题。需要结合上述两点一起修改。...原创 2020-04-16 13:50:02 · 1335 阅读 · 0 评论 -
android drawable(hdpi,mdpi,ldpi)
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别: (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854) (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480) (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (24...原创 2020-03-20 17:05:19 · 382 阅读 · 0 评论 -
Android Application多次创建问题
一、背景 写了一个测试服务,在Service中会用到Application中的一个变量,变量值在Service的OnCreate中赋值。二、 问题 测试服务的时候发现问题,在Activity中使用Application中的变量,一直为空。以为是Service没执行,打Log分析后发现问题:Service会执行,Application中的变量会赋值;问题是Applicatio...原创 2020-03-06 20:14:53 · 1087 阅读 · 0 评论 -
Android Studio 没有Generate signed Bundle or APK选项
Android Studio 没有Generate signed Bundle or APK选项点击File-Sync Project with Gradle Files选项即可原创 2020-03-02 10:59:17 · 8995 阅读 · 0 评论 -
android全部异常捕获
Exception不分类捕获具体异常时,通常会用catch (Exception)的方式,捕获所有异常。但此方式并不是万能的,程序运行过程中,还是可能会崩溃。比如使用了一个jar包api,本地编译时无问题,但当真实运行时,正式环境中无此api,就会出现NoSuchMethodError导致崩溃。Throwable解决方案就是用catch (Throwable)的方式,捕获所有错误。包...原创 2019-12-03 18:31:00 · 885 阅读 · 0 评论 -
Android仓库
maven在 Maven 的术语中,仓库是一个位置(place)。Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。Maven 仓库有三种类型:本地(local)中央...原创 2019-11-04 11:19:06 · 667 阅读 · 0 评论 -
在windows、linux上logcat抓取搜索android日志
1. 在linux上用grep命令logcat *:V | grep "搜索内容"2.在windows上用findstr命令adb logcat | findstr "搜索内容"原创 2019-10-25 16:59:24 · 660 阅读 · 0 评论 -
记一次特殊的ConcurrentModificationException异常
关于List的ConcurrentModificationException异常,想必大家都遇到过。一般都是在遍历集合时,对其进行了删除操作。大家都知道使用for循环替代foreach即可避免此问题。 今天遇到了另一种情况的ConcurrentModificationException异常,在此记录下。 看下下面的代码: List<Info> ...原创 2019-03-25 16:14:21 · 261 阅读 · 0 评论 -
ScheduledExecutorService使用之——重复创建停止周期性任务
ScheduledExecutorService的创建就不用多说,直接上代码executorService = Executors.newSingleThreadScheduledExecutor();ScheduledExecutorService的停止有shutdown和shutdownNow之分,可以看下它们之间的区别,但多数情况下都不能结束在线程池中的任务。不过有个小技巧可以让真...原创 2019-04-29 11:08:13 · 13407 阅读 · 2 评论 -
android:windowIsTranslucent 透视Launcher桌面图标
Activity主题添加"android:windowIsTranslucent"属性可以达到Acitivity透明效果。但是添加该属性后,有些意料之外的现象发生。网上见到的有:生命周期onStop没执行、activity切换动画无效、启动app非常慢等。这里说另一种现象:设置该属性后,启动app时会透视桌面,activity启动时,会同时看到桌面Launcher上的图标。或调起输入法时,...原创 2019-05-27 14:09:05 · 1721 阅读 · 0 评论 -
FLAG_PLAY_SOUND 调整音量时播放声音
Android调整音量时,用AudioManager的setStreamVolume方法,该方法有个flags参数,当传入FLAG_PLAY_SOUND时,可以播放声音。碰到过一个系统重置时,会有提示音的问题。就是因为系统重置时,调用了setStreamVolume设置声音方法,该方法的参数设置了FLAG_PLAY_SOUND。...原创 2019-05-27 17:16:29 · 1971 阅读 · 3 评论 -
android 反射NoSuchMethodException异常
android 反射NoSuchMethodException异常因为方法的参数是int类型,使用反射调用时使用Integer类型的参数。应该使用getDeclaredMethod("****", int.class);原创 2019-06-24 18:37:45 · 2194 阅读 · 0 评论 -
System.currentTimeMillis()与SystemClock.elapsedRealtime()的区别与使用
区别:System.currentTimeMillis()获取的是系统的时间,可以被修改。SystemClock.elapsedRealtime()获取的是系统开机到现在的时间,不能被修改。使用:System.currentTimeMillis()用于和日期相关的地方,比如日志。SystemClock.elapsedRealtime()用于某个事件经历的时间,比如两次点击的时间间隔。...原创 2019-07-24 18:21:18 · 4506 阅读 · 0 评论 -
Audio AudioFocus 使用
AudioFocus是Android引入的一个Audio协调机制,当多方需要使用Audio资源时,可以通过AudioFocus机制来协调配合。因为该机制需要开发者主动去遵守,比如A应用没遵守该机制,则其它遵守了该机制的应用是完全没办法影响A应用的。实际使用过程中,即使开发者遵守了,也会引入一些问题。比如:A应用正在使用焦点。此时B应用申请了焦点,但是一直没有申请成功。当A应用释放...原创 2019-08-28 18:19:37 · 168 阅读 · 0 评论 -
Android常见的崩溃日志关键字分析 ( Android Crash Keyword)
Android程序崩溃是一个严重的问题,但是原因大多情况下比较明了,搜索一下 Fatal,Crash 关键字就可以很快捷的定位到原因。 如果是fwk引起的崩溃(比如jar包通过反射调用一个不存在的接口),上述两个关键字会搜索不到内容。则需搜索 AndroidRuntime 或 Shutting down VM 如果都没有的话,那就要慢慢分析日志了。可以搜...原创 2019-09-04 18:28:43 · 6567 阅读 · 0 评论 -
Android RTL 数字问题
Android支持RTL从右到左布局及显示,通过在application中配置android:supportsRtl="true"即可。 在实际使用中会发现一个TextView的RTL显示问题。中文及英语是从左边开始显示的,但是数字确是从右边显示的。在一个列表中,这样的显示就很怪异。 这时就需要用到textDirection属性,来配置文字、数字怎么显示,一般用locale...原创 2019-09-11 18:27:27 · 771 阅读 · 0 评论 -
Android小tip
1. applicantion的label 标签:安装和卸载应用时显示的名称 launcher activity的label标签:App标题和桌面上App的显示名称原创 2019-03-14 09:39:17 · 164 阅读 · 0 评论