Android
文章平均质量分 73
他叫自己MR张
博主拥有多年 Android 开发经验,关注细节,善于整合各类知识和解决复杂的疑难问题;负责过多个 Android 出海应用,从立项到上线稳定运营,积累了丰富的经验和技能。本博客主要分享 Android 开发经验和技巧,帮助其他开发者更好地掌握 Android 开发和其他相关技术。欢迎来到我的博客,一起探讨 Android 开发的乐趣!
展开
-
Android 必知必会:自定义 View 可以知道 onPause、onResume 被调用了吗?(不依赖Lifecycle)
自定义 View 可以知道 onPause/onResume 被调用了吗?自定义View、custom View、Lifecycle、onPause、onResume原创 2022-03-23 23:24:54 · 4575 阅读 · 0 评论 -
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
最简单的方式就是升级项目的 Gradle 插件(Gradle plugin)到 3.0.1 及以上。如果项目实在是不能升级,只能通过在 NDK 目录下创建相应的目录。找到对应的 NDK 的目录在项目的根目录的 local.properties 中可以找到 ndk.dir ,他的值即 NDK 的目录。这里假设是:Linux & Mac : ~/Library/Android/sdk...原创 2021-08-25 16:40:01 · 248 阅读 · 0 评论 -
友盟 SDK 分享到 Messenger 无法发送消息
友盟 Messenger 无法发送消息umeng Messenger 无法发送消息umeng Facebook Messenger 无法发送消息由于项目的登录和分享基于友盟进行的设计,接入 Facebook Messenger 分享,发出去的消息总是提示【无法发送消息 轻触了解详情】可能的原因有2点:Messenger 平台从 2019 年 6 月 10 日开始,新应用将不再支持将...原创 2020-05-01 20:19:52 · 8315 阅读 · 0 评论 -
Android 必知必会 - EmptyView
关键词:GridView ListView EmptyView SwipeRefreshLayout在使用 GridView、ListView 时经常需要处理无数据的情况,给用户一些必要的提示。而 GridView 和 ListView 可以使用 setEmptyView() 方法来设置无数据时展示的 View 。...原创 2017-07-07 18:23:13 · 2759 阅读 · 1 评论 -
Android 必知必会 - DialogFragment 实现类似 PopupWindow 效果
如果移动端访问不佳,请访问 ==> Github 版近期有网友根据 Android 必知必会 - DialogFragment 使用总结 做一些业务,但是目标却是用 DialogFragment 实现类似 PopupWindow 效果:只拦截自身所占空间部分的事件,其余空间的点击事件不处理可以根据某个 View 定位自身位置虽然在功能上 PopupWindow 更符合需要,但是使用 Dialo原创 2017-06-01 18:19:25 · 6127 阅读 · 1 评论 -
Android Studio 2.3 升级 gradle 报错
错误提示如下:Gradle sync failed: Cause: error in opening zip file Consult IDE log for more details (Help | Show Log)原创 2017-03-13 11:18:05 · 2061 阅读 · 0 评论 -
解决 Mac 下 Android Studio 不打印日志
在 Mac 下使用 Android Studio 时常会遇到 Android Monitor 突然不打印日志的情况,目前我知道的有三个方法:重启 Android Studio重启 adb切换 adb 的模式原创 2017-03-02 14:41:15 · 3515 阅读 · 0 评论 -
在 Jelly Bean 中使用应用加密
翻译自:Using app encryption in Jelly Bean关键词 : adb install -l最新的 Android 4.1(Jelly Bean)版本在上周的 Google I / O 大会上发布了,它有一大堆新功能和改进。 其中一个有趣的功能是应用程序加密,除了简短的说明还没有任何细节:“从 Jelly Bean 版本起,Google Play 中的付费应用程序在分发和存储翻译 2017-01-09 13:22:16 · 1259 阅读 · 0 评论 -
Android 必知必会 - DialogFragment 使用总结
如果移动端访问不佳,请访问 ==> Github 版背景Android 官方推荐使用 DialogFragment 来代替 Dialog ,可以让它具有更高的可复用性(降低耦合)和更好的便利性(很好的处理屏幕翻转的情况)。而创建 DialogFragment 有两种方式:覆写其 onCreateDialog 方法 — ①覆写其 onCreateView 方法 — ②原创 2016-10-29 01:31:20 · 10848 阅读 · 4 评论 -
Android 必知必会 - 隐藏烦人的 JAVA 图标
当你在项目中运行 ./gradlew 是,有时需要调用一些 JAVA 工具。在 OS X 上,这会伴随着 Java 图标在 Docker 上的显示,并且永远不会消失,影响你对项目的关注。为了永远隐藏 Java 图标(所有从 shell 中启动的 Java 程序),添加下面这行内容到你的 ~/.bashrc 或 ~/.zshrc :export JAVA_TOOL_OPTIONS="-Dapple.翻译 2016-09-08 15:44:22 · 1498 阅读 · 0 评论 -
Android 必知必会 - RadioGroup 和 ViewPager 联动
如果移动端访问不佳或需要更好的阅读体验,欢迎使用 ==> Github 版使用 RadioGroup 和 ViewPager 实现更加可定制的效果。背景昨天设计图刚出一点,写了《Android 必知必会 - 动态切换着色模式和全屏模式》,记录了动态修改页面显示模式的方式。今天又有新图,不过设计师只考虑 iOS 平台的设计,拿到设计图发现 TabLayout + ViewPager 的套路实现起来很麻原创 2016-09-20 20:47:27 · 3997 阅读 · 5 评论 -
Android 必知必会 - 动态切换着色模式和全屏模式
通过代码动态切换页面的着色模式和全屏模式,兼容 Android 4.4 + 。本文假设读者已经了解着色模式和全屏模式(沉浸模式)。公司的 APP 设计图仅有 iOS 版的,对于 Android 平台,它整体算是着色模式,但是在个人页面是全屏模式(沉浸模式),实现设计图时,我使用的是一个 Activity + 四个 Fragment 实现的。原创 2016-09-19 17:16:52 · 3269 阅读 · 3 评论 -
Android 必知必会 - FloatingActionButton 24.2.0 默认无水波纹效果
无意间发现一个问题,在使用 22.2.0 的 design 库时,FloatingActionButton 默认点击时产生水波纹的点击效果,但是我使用最新版 24.2.0 的 design 库时,它默认点击没有水波纹效果,而且不响应app:pressedTranslationZ="xxdp"这个属性。原创 2016-09-14 17:26:41 · 1869 阅读 · 0 评论 -
Android必知必会-带列表的地图POI周边搜索
可随视角移动的列表展示的POI周边搜索原创 2016-05-30 15:30:18 · 11447 阅读 · 24 评论 -
Android 必知必会 - 根据包名判断 App 运行状态
获取指定包名的 APP 是否还在后台运行,判断 APP 是否存活。背景可以根据 App 是否有 Service 分两类情况处理:没有 Service有 Service对于没有 Service 的 App,程序一旦切换到后台,可能很快就被回收了,这里使用 ActivityManager.getRunningTasks(int maxNum)原创 2017-02-07 17:22:40 · 9279 阅读 · 8 评论 -
Android项目开发填坑记-Fragment的onAttach
Fragment的onAttach()有两个重载,其中一个被废弃了,但是在使用过程中,发现新接口在某些情况下并不被执行。原创 2016-04-21 00:58:11 · 34494 阅读 · 5 评论 -
Android Studio 常见问题汇总
格式化XML标签顺序发生变化; Logcat不显示菜单;Logcat 不显示日志原创 2019-09-25 19:57:45 · 1505 阅读 · 1 评论 -
小米6-谷歌全家桶安装
测试机需要安装谷歌全家桶,测试海外项目使用。原创 2019-09-16 14:55:33 · 4369 阅读 · 0 评论 -
遍历 AccessibilityNodeInfo 报 StackOverflowError
如果移动端访问不佳,请使用 ==> Github Pages 版。在使用 AccessibilityService 遍历包含 WebView 的 AccessibilityNodeInfo 时会在某些情况下必现 StackOverflowError 的错误,导致应用崩溃。0x00 异常最近使用 Android 的 AccessibilityService 做一些自动化操作时发现,在部分...原创 2019-02-17 21:59:04 · 1849 阅读 · 1 评论 -
React Native 小记 - LessBorderTextInput 无边框的 TextInput
由于 TextInput 在 Android 和 iOS 平台默认表现不一致,为了统一样式,这里参照官方文档( 英文文档 | 中文文档 )进行了封装,并添加了对 ref 的支持。ref 用于获取组件,实现自动切换输入框的焦点等场景。如果移动端访问效果不佳,请使用 ==> Github Pages 版。代码展示import React from 'react';import {Pla...原创 2018-10-24 11:35:57 · 1266 阅读 · 0 评论 -
React Native 小记 - TouchableOpacity 单次点击无效
一般是焦点问题,解决方法:即在 ScrollView 标签内,根据情况设置其 keyboardShouldPersistTaps 属性值为 always 或者 handled 。详细解决过程如下:如果移动端访问不佳,请使用 ==> Github Pages 版。0x00 描述收到测试人员提交的 Bug:帐号密码输入完毕按返回键关闭键盘后,点击登录没反应,再点一次才执行登录操作。网上类似...原创 2018-10-23 16:08:24 · 4776 阅读 · 0 评论 -
Android Studio Error:String index out of range:-1
博主遇到此问题的原因是 NDK 版本过高(>=18),或者说 Android Studio 版本过低(< 3.x),导致不匹配造成的。解决方法是降低 NDK 版本到 17.x 及以下,或者升级 Android Studio 版本到 3.x。如果移动端访问不佳,请使用 ==> Github Pages 版。0x00 异常最近接手同事的一个项目,在我电脑上使用 Android ...原创 2018-10-25 15:45:21 · 3520 阅读 · 0 评论 -
Android 必知必会 - 自定义 OkHttp 、OkIo 的包名
在某些特殊的情况下,需要对项目中使用的 okhttp 的包名进行修改,避免冲突或者版本不一致导致找不到类的问题。Android 必知必会 - 自定义 OkHttp 、OkIo 的包名原创 2018-05-31 14:58:51 · 2033 阅读 · 3 评论 -
Push failed: Failed with error: fatal: Could not read from remote repository.
使用 IDEA 或者 Android Studio 时,使用界面进行 git push 代码时如果出现此异常,可以使用下面的方式解决:异常完整日志:java.io.IOException: Authentication failed:at org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:298)at org.je...原创 2018-05-31 12:08:48 · 1491 阅读 · 1 评论 -
Android 必知必会 - 使用 ADB 操作 Clipboard
如果移动端访问不佳,请使用 -> Github 版关键词:service call 、clipboard 、Unknown package手里一个项目需要执行个骚操作,其中有一个步骤是使用 ADB 来操作 Clipboard(粘贴板),搜索许久发现直接操作并不可行,确切的说是在 Android API >=11 时是不可行的。 操作环境:macOS Sierra 10.12.6原创 2018-01-17 12:06:24 · 6404 阅读 · 1 评论 -
Android 必知必会 - InstallerPackageName 的一点补充
因业务需要,项目需要一些 InstallerPackageName 方面的一些知识,随便看了下,很多开发估计不知道还有这档子事情。阅读资料发现一篇文章讲的还是很全面的,但是有些细节在实践中还是需要补充下。原创 2017-12-19 12:20:44 · 2332 阅读 · 0 评论 -
Android 必知必会 - 获取手机系统的构建模式
编译 Rom 时,需要指定目标构建模式,构建模式有三种:用户模式 user、用户调试模式 userdebug 和工程模式 eng原创 2017-10-11 00:08:41 · 4060 阅读 · 6 评论 -
Android必知必会-App 常用图标尺寸规范汇总
内容持续更新中,更新日期:2016-08-111. 程序启动图标(icon launcher)放在mipmap-*dpi下,文件名为ic_launcher.pngLDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px。MDPI (Medium Density Screen, 160 DPI),其图标大小原创 2016-07-14 16:59:56 · 46782 阅读 · 2 评论 -
Android 必知必会-使用 supportV4 的 RoundedBitmapDrawable 实现圆角
RoundedBitmapDrawable 是 supportV4 下的一个类,有了它,显示圆角和圆形图片的情况下就不需要额外的第三方类库了,还能和各种图片加载库配合使用。原创 2016-08-25 17:25:17 · 6590 阅读 · 1 评论 -
Android 必知必会 - 极简版 Leancloud 短信验证码功能
使用 LeanCloud 的 REST API 来自定义短信验证码相关功能,不再需要臃肿的 SDK 。背景公司的项目仅仅使用了 Leancloud 短信功能来发送验证码,刚开始 Leancloud 的短信 SDK 还会和项目中的 okhttp 、fastjson 产生冲突,后来使用了独立的命名空间解决了冲突,但这样处理会导致项目中产生大量的冗余库。原创 2016-08-29 17:56:51 · 3753 阅读 · 0 评论 -
Android获得控件在屏幕中的绝对坐标
int[] location = new int[2] ;view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标location [0]--->x坐标,location [1]--->y坐标getLocationOnScreen计算该视图在全局坐标转载 2016-05-13 16:27:27 · 28113 阅读 · 0 评论 -
Android必知必会-Handler可能引起的内存泄露
在Android开发中,编写多线程通常会使用到Thread和Handler,细心的朋友会发现,很常见的写法会被编辑器提示有问题,new Handler(){} 内的代码背景颜色会变成黄色。Android Studio的提示大概就是需要定义成静态之类的,以防止内存泄露问题。时间仓促,临时整理一下查到的资料,便于后续使用。 下面是网上很常见的写法://定义和初始化private Handler mh原创 2015-09-24 00:27:39 · 1636 阅读 · 0 评论 -
Android必知必会:Android反编译 -- 错误代码还原
1. setColor(-16777216)反编译的代码中会有很多setColor(int)的情况,比如setColor(-16777216),这个值比较特别,能轻易的查到Android文档中对这个整数原创 2016-04-11 20:25:34 · 11271 阅读 · 0 评论 -
Android必知必会-获取视频文件的截图、缩略图
背景公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下。代码实现 /** * 获取视频文件截图 * * @param path 视频文件的路径 * @return Bitmap 返回获取的Bitmap */ public s原创 2016-03-11 14:12:21 · 6522 阅读 · 3 评论 -
Android项目开发填坑记-so文件引发的攻坚战
故事的最初我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so库只有armeabi-v7a 版的,由于需要使用的时候拷贝一些界面和图片资源到现有的项目中,所以我就索性直接打包成了aar,经过一番修改就上线了。Bug出现的那晚播放在线视频的功能应要求被保留到新的一个项原创 2016-03-16 16:41:06 · 9033 阅读 · 6 评论 -
Android:Field can be converted to a local varible.
背景使用 Android Studio 开发 Android 有一段时间了,偶尔会碰到 AS 在一些私有变量上有黄色高亮提示Field can be converted to a local varible,百度没查到什么有用的信息,还是用谷歌搜到了一些解答。解析Field can be converted to a local varible 的完整说明是(纯手打):This inspection原创 2016-01-14 14:47:55 · 23542 阅读 · 1 评论 -
Android必知必会-Stetho调试工具
一、背景 Stetho是 Facebook 出品的一个强大的 Android 调试工具,使用该工具你可以在 Chrome Developer Tools查看APP的布局, 网络请求(仅限使用Volle, okhttp的网络请求库), Sqlite, Preference, 一切都是可视化的操作,无须自己在去使用adb, 也不需要root你的设备本人使用自己的Nubia Z9 Mini作为调试机原创 2016-03-01 16:48:09 · 8196 阅读 · 9 评论 -
smack4中文文档
smack4中文文档基于samck官方最新文档翻译而成,适用于最新的Smack4.x原创 2015-10-07 19:03:56 · 4310 阅读 · 4 评论 -
Android开发-Listview中显示不同的视图布局
1. 使用场景在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排的行为第二类布局。单一类型的ListVie转载 2015-09-15 20:53:22 · 1064 阅读 · 0 评论 -
Android必知必会--使用shape制作drawable素材
前言最近看到朋友制作的Android APP使用了极少的图片,但是图形却极其丰富,问了之后得知是使用shape绘制的,有很多优点。 下面是我整理的一些素材:预览下面是图片预览:代码布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_p原创 2015-05-29 13:05:34 · 3131 阅读 · 0 评论