
Android实战
文章平均质量分 57
结合实际项目中遇到的各种问题,不断探索并总结Android编程的技能和技巧,在避免重复踩坑的同时,快速开发出高质量的移动端APP应用。
Data-Mining
一枚典型的音视频技术爱好者
展开
-
教你玩转友盟应用性能监控U-APM平台
前言友盟推出了全新的应用性能监控平台 U-APM,U-APM 可以帮助我们深入了解应用的性能和稳定性,帮助我们高效提升应用的质量。通过实时采集新版本上线后的崩溃信息,提供了多种辅助定位问题的关键信息及多维度分析报表,从而能够快速发现问题、定位问题、解决问题。原创 2021-10-22 08:46:59 · 10575 阅读 · 0 评论 -
Android报OnUnhandledKeyEventListener接口找不到
OnUnhandledKeyEventListener 接口在Android 9.0才有的。原创 2020-12-06 09:28:09 · 3421 阅读 · 0 评论 -
mac解压ndk.bin文件
感觉还是先看看官方的文档是最靠谱的,网上很多方法比较坑爹。很简单的东西搞的真复杂。Mac解压NDK. bin文件总共分两步:1.获取文件权限chmod a+x android-ndk-r10e-darwin-x86_64.bin2. 解压出文件./android-ndk-r10e-darwin-x86_64.bin转载:http://bl转载 2017-11-29 17:38:11 · 1057 阅读 · 0 评论 -
Android Studio:Caused by: java.lang.ClassNotFoundException: Didn‘t find class “...“on path: DexPath*
项目报错:Caused by: java.lang.ClassNotFoundException:Didn't find class "com.demo.test.MyApplication" on path:DexPathList[[zip file "/data/app/com.demo.administrator.aa-1/base.apk"],nativeLibraryDirectories=[/data/app/com.demo.administrator.aa-1...原创 2020-10-27 22:40:56 · 1726 阅读 · 3 评论 -
Android路径问题
Android代码中Environment.getExternalStorageDirectory().getAbsolutePath()表示一个特定的物理路径。断点和Log显示的地址是:/storage/emulated/0当我们通过Android Studio 的 Device File Explorer 工具打开对应的路径时,却发现没有权限读取。但是,实际的地址是:/storage/sdcard0位置如下图所示:...原创 2020-10-13 11:04:56 · 707 阅读 · 0 评论 -
下载指定版本的NDK
目录前言正文前言在进行Android开发下载NDK时,并不总是需要配置最新版本的NDK。很多时候,我们都会下载指定版本的NDK。正文很多时候,我们都会下载指定版本的NDK,比如 r12b 。今天就以下载 r12b 为例,看看如何操作。一、首先进入官网官网下载地址:https://developer.android.google.cn/ndk/downloads/index.html?hl=zh-cn点击“NDK 修订历史记录”跳转链接,进入新页面,往下滑就会.原创 2020-10-12 14:54:28 · 4412 阅读 · 16 评论 -
谷歌没有停止使用Fuchsia代替Android的步伐
目录前言正文结尾前言多年前,谷歌就对外宣布未来将使用Fuchsia OS代替Android OS。原本来以为谷歌就是说说,想炫技而已,证明自己可以开发出比安卓更好用的移动端操作系统(Android毕竟是收购过来的)。正文说到谷歌想替换Android,其实也是可以理解的。尽管Android生态是成功的,占据了全球移动市场份额超过80%的份额,但谷歌的商业模式无疑是失败的。尽管谷歌有这把好牌,但自己却没有从中赚到什么钱,很郁闷。所以想通过Fuchsia改变这一现状。最近没有.原创 2020-07-16 16:45:25 · 3037 阅读 · 0 评论 -
gradle配置项packagingOptions使用说明
packagingOptions常见的设置项有exclude、pickFirst、doNotStrip、merge。1.exclude,过滤掉某些文件或者目录不添加到APK中,作用于APK,不能过滤aar和jar中的内容。比如: packagingOptions { exclude 'META-INF/**' exclude 'lib/arm6...原创 2019-12-18 14:02:10 · 35054 阅读 · 0 评论 -
Android常见系统权限
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 获取精确位置 android....原创 2019-11-21 10:41:47 · 656 阅读 · 0 评论 -
line 36: ./d2j_invoke.sh: Permission denied
今天突发奇想,打算搞一下apk的反编译,利用d2j-dex2jar.sh转换class.dex文件时,报了如下错误:line 36: ./d2j_invoke.sh: Permission denied猜测是脚本执行权限问题,避免费事儿,直接全部授权:sudo chomd 777 d2j_invoke.sh问题解决。...原创 2019-11-18 12:04:42 · 2031 阅读 · 4 评论 -
错误: 匿名***不是抽象的, 并且未覆盖***中的抽象方法***
如果使用的IDE是Android Studio,快速实现该抽象方法,快捷键操作,避免手写代码,鼠标移动到提示错误的抽象类或者接口类上,按下Alt+Enter键,就会出现:此时,再按下Enter键,就会出现需要实现的抽象方法:再按下Enter键,方法就自动生成好了。如果有多个可以先选择对应的那个抽象方法,再回车。...原创 2019-11-04 17:08:03 · 5349 阅读 · 1 评论 -
Warning : debug info can be unavailable.
遇到这个问题:Warning : debug info can be unavailable. 十分影响心情。试了很多方法,最后一个有效,搜索到的方法总结如下:1. 插拔手机。(试了,无效)2. 重启Android Studio。(试了,无效)3. 重启电脑。(没有试,成本太大)4.adb kill-server +adb start-server。(试了,无效)5....原创 2019-06-20 18:18:47 · 7991 阅读 · 16 评论 -
@SuppressWarnings(rawtypes)
@SuppressWarnings,表示警告抑制,告诉编译器不用提示相关的警告信息。"rawtypes",这个参数是告诉编译器不用提示使用基本类型参数时相关的警告信息。一般是在通过传参调用某个方法的时候进行标识。SuppressWarnings中类似的参数还有很多,比如:all: to suppress all warnings boxing: to suppress warning...原创 2019-06-04 18:02:39 · 6278 阅读 · 0 评论 -
Android用命令行查看手机架构(二)
电脑连接上手机,直接输入:adb shell getprop ro.product.cpu.abi如果你想查看该手机支持的全部架构,则输入:adb shell getprop ro.product.cpu.abilist本人手机的查看结果如下:...原创 2019-06-06 17:15:31 · 1869 阅读 · 0 评论 -
Android用命令行查看手机架构
用命令行查看安卓手机的架构:adb shell cat /proc/cpuinfo结果实例:processor : 0BogoMIPS : 3.84Features : fp asimd evtstrm aes pmull sha1 sha2 crc32CPU implementer : 0x41CPU architecture: 8CPU variant : 0x0C...原创 2019-05-30 09:50:56 · 8156 阅读 · 0 评论 -
Android Studio中logcat的工具栏消失了
今天,突然发现Android Studio中logcat的工具栏消失了,自己百度了,也谷歌了,费了半天劲也没解决。于是问了一下Z同学,果然是工作经验足,点了点就好了。在此记录一下!具体操作:先把logcat移出工具栏,然后再移回去。消失的部分就又出现了,很神奇吧!...原创 2019-05-27 15:59:47 · 33733 阅读 · 23 评论 -
Android创建定时器的常见方式
一、利用Timer + TimerTask就像它的名字一样,一看就知道可以用来做定时器。直接看代码:Timer timer = new Timer();timer.schedule(new TimerTask() { @Override public void run() { //todo what you want }}, 0, 1000);...原创 2019-05-10 23:42:43 · 1041 阅读 · 0 评论 -
Error:com.google.gson.internal.LinkedTreeMap cannot be cast to ***
数据转换错误,类似的错误还有LinkedHashMap,这个时候,我们应该将子类向父类或接口转换,因为LinkedTreeMap和LinkedHashMap都实现了Map。转换代码:Map<String, Object> infoMap = (Map<String, Object>) linkTreeMap;Map<String, Object> in...原创 2019-04-28 17:40:40 · 2392 阅读 · 0 评论 -
Error:Unterminated object at character *** of {
本人用Android处理JSON字符串的时候遇到了这个问题,如果JSON字符串是正确的格式,完全可以用下面的代码转换成JSON对象,然后进行后续操作。JSONObject jsonObject = new JSONObject(jsonString);如果你不确定jsonString是标准的JSON字符串,你可以利用这个网址检测一下。点这里。如果提示正确,如下图,就可以进行JSON对...原创 2019-04-28 17:28:10 · 4742 阅读 · 0 评论 -
Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
问题描述:Performing Streamed Installadb: failed to install app-debug.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]使用命令行安装app时遇到这个报错。原因:如果遇到了这个问题,而恰好又是小米手机,那么“恭喜你”,请准备一张SIM...原创 2019-07-25 20:24:29 · 12102 阅读 · 8 评论 -
Android Studio代码自动对齐
方法一、全选(ctrl+A),剪切(ctrl+X),粘贴(ctrl+V)。亲测有效!方法二、Ctrl+Alt+L。亲测无效!原创 2019-04-28 16:58:52 · 5181 阅读 · 5 评论 -
assertion "Pure virtual function called!" failed
今天遇到一个偶现的崩溃:assertion "Pure virtual function called!" failed,发生的时机是在app退出的时候,目前掌握的信息比较少,还不清楚发生的具体原因,在此先记录一下。/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++abi...原创 2019-06-11 11:16:16 · 1375 阅读 · 0 评论 -
incompatible target
今天打包了新的A.so动态库,依赖A.so再编译B.so时,遇到了如下报错:/home/android/android-ndk-r12b/sources/libraryname/android/arm/lib/*.so: incompatible target看到incompatible target提示,自己猜测应该是cpu架构不匹配,随后果然验证了自己的想法,就是B与依赖的A架构不统...原创 2019-06-11 14:17:35 · 6916 阅读 · 2 评论 -
aar、jar文件对比
*.aar,AAR(Android Archive)包是一个Android库项目的二进制归档文件。*.jar,JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。使用场景:如果只是一个简单的类库,那么生成*.jar文件即可;如果是一个UI库,...原创 2018-07-10 15:30:42 · 1621 阅读 · 0 评论 -
Android版本和API Level的对应关系
平台版本 API级别 VERSION_CODE Android 7.0 24 N Android 6.0 23 M Android 5.1 22 LOLLIPOP_MR1 Android 5.0 21 LOLLIPOP Android 4.4W 20 KITKAT_WATCH...原创 2019-10-11 16:44:56 · 737 阅读 · 0 评论 -
JNI相关类型映射
一、JNI类型映射Java类型 本地类型 描述 boolean jboolean C/C++8位整型 byte jbyte C/C++带符号的8位整型 char jchar C/C++无符号的16位整型 short jshort C/C++带符号的16位整型 int jint C/C++带符号的32位...原创 2019-09-18 15:29:07 · 799 阅读 · 0 评论 -
adb操作多个设备
实际开发过程中经常会遇到电脑连接多个Android设备的情况,这时如果我们想操作某台设备,不能把其他设备的数据线都断掉,这样做太麻烦了。那我们应该怎么办呢,其实很简单,只需要在输入命令的时候,“adb”的后边紧接着“-s 设备序列号”,再接要执行的命令即可。比如,进入某个设备shell:adb -s 序列号 shell。设备的序列号应该怎么获取呢?使用命令:adb devices。...原创 2019-08-22 20:32:41 · 19363 阅读 · 0 评论 -
Permission Denial: INTERACT_ACROSS_USERS_FULL or INTERACT_ACROSS_USERS
今天遇到一个崩溃,具体crash日志如下:Caused by: java.lang.SecurityException: Permission Denial: broadcast from android asks to run as user 0 but is calling from user 10; this requires android.permission.INTERACT_AC...原创 2019-08-02 14:55:55 · 12182 阅读 · 0 评论 -
adb: connect error for write: device offline
问题描述:error: device offlineerror: device offlinePerforming Streamed Installadb: connect error for write: device offline原因:具体原因未知。解决方法:1. 插拔手机。(试了,无效)2.adb kill-server +adb start-server。(试...原创 2019-07-25 20:28:53 · 4035 阅读 · 0 评论 -
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
问题描述:Performing Push Installapp-debug.apk: 1 file pushed. 6.1 MB/s (20417482 bytes in 3.179s)pkg: /data/local/tmp/app-debug.apkFailure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]使用adb install命令在...原创 2019-07-16 19:59:41 · 8245 阅读 · 0 评论 -
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.* signatures do not match the previously
问题描述:Performing Streamed Installadb: failed to install app-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.*.app signatures do not match the previously installed version; ignori...原创 2019-07-23 16:09:10 · 12333 阅读 · 0 评论 -
Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]
问题描述:adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]使用adb install命令在手机上安装app时,遇到这个报错。原因是手机的内存不够。解决方法:1.清理手机内存;2.删除一两个不用的app应用。and so on,这些方法都可以解决这个问题。...原创 2019-07-18 16:08:20 · 7011 阅读 · 0 评论 -
Unable to open debugger port (localhost:8601): java.net.ConnectException “Connection refused“
今天调试Android程序突然遇到一个问题:Unable to open debugger port (localhost:8601): java.net.ConnectException "Connection refused"。很奇怪,刚才还好好的呢。巧就巧在,我刚才只干了一件事儿。所以自然而然定位到了问题的原因。五分钟前,我为了验证一个播放问题,绑定了本机host到京东的节点。于是,我删...原创 2019-04-15 20:17:47 · 6447 阅读 · 4 评论 -
集成声网(Agora)SDK踩坑集锦系列
本文以Android平台为例,使用的声网SDK版本2.4.0.问题一、/app/src/main/res/values/strings.xml:4:34: Error: 元素内容必须由格式正确的字符数据或标记组成。解决:下载声网的官方demo,编译运行第一次都会遇到这个报错。其实是提示我们使用正确的app ID,有的话直接用ID字符串替换该位置即可。如果没有去声网的官网注册一下再补上。注意...原创 2019-04-12 15:17:42 · 10566 阅读 · 0 评论 -
More than one file was found with OS independent path 'lib/x86/***.so'
出现这个错误是动态库so冲突导致的,一般原因有两种。其一,项目中同时存在在线依赖和本地依赖动态库的情况;其二,项目app模块和依赖模块同时导入了armeabi-v7a,arm64-v8a,x86等架构包。顺着这两个思路去排查,一定可以解决。Good Luck。...原创 2019-04-12 12:02:26 · 4347 阅读 · 4 评论 -
adb无线调试手机-android必备技能
目前android手机开发app都是使用usb数据线连接电脑进行调试,这样很容易受usb数据线的限制,不能灵活的移动手机。后来,因为项目的需求,开发平台移到了机顶盒上,自己发现使用usb数据线更加繁琐了。于是,逼自己发现了“新大陆”——使用无线wifi连接电脑进行调试。使用步骤如下:1.首先需要借助数据线连接设备与电脑,输入如下命令:adb tcpip 6666(PS:...原创 2018-08-23 21:20:24 · 950 阅读 · 0 评论 -
ijkplayer知识点(4)- danmaku
话说最近研究ijkplayer开源库,对于其中的一个目录名称非常不解,tv.danmaku.ijk.*,后来发现B站确实就有一个叫danmaku的开源项目,同时也明白了,这个单词(danmaku)的意思是:弹幕。...原创 2018-08-01 16:56:21 · 4941 阅读 · 0 评论 -
Testin与Bugly对比
理论上说二者没有什么可比性,但今天说的是二者的界面对比。为什么感觉它们非常像呢,可能跟我最近与二者的接触比较多有关系。先简单介绍一下它们吧。 Testin是目前国内非常有名的第三方测试平台,Testin是全球最大的移动游戏、应用真机和用户云测试平台,目前拥有千余款不同型号的手机、平板、智能电视和OTT终端,向超过80万的国内外移动游戏、应用开发者提供服务,累计测试超过1.8亿...原创 2018-07-15 19:17:44 · 11587 阅读 · 0 评论 -
使用adb命令抓取崩溃日志
开发过程中经常遇到真机崩溃的情况,这时如何拿到崩溃日志是我们十分关心的问题。手机崩溃后,不要再进行别的操作,保留现场。连接手机和电脑,使用adb命令抓取崩溃日志。adb logcat *:W注意:这句命令的意思是显示所有优先级大于等于警告(Warning)的日志,查找崩溃问题一般用:adb logcat *:E注意:这句命令的意思是显示所有优先级大于等于错误(Error)的日志。日志的优先级一般有...原创 2018-07-05 11:54:21 · 25082 阅读 · 0 评论 -
使用adb命令从手机传文件到电脑
使用adb命令从手机传文件到电脑,比如视频、apk、文档、压缩包等。举个例子:把视频文件test.flv发送到mac本/Users/lz目录下,并修改为good.flv ,具体命令如下:adb pull /sdcard/test/test.flv /Users/lzgood.flv注意:1.请确保手机与电脑连接成功;2.目录与文件正确;3.adb命名有执行权限。如果想从电脑传文件到手机,请参考:h...原创 2018-06-29 09:59:34 · 27031 阅读 · 0 评论