Waychel

发现一个新世界


  • 首页

  • 关于

  • 归档

关于android中的armeabi、armeabi-v7a、arm64-v8a及x86等,arm64-v8a崩溃问题解决

发表于 2019-03-25

Android 设备的CPU类型(通常称为”ABIs”)

  • armeabi-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
  • arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
  • armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
  • x86: 平板、模拟器用得比较多。
  • x86_64: 64位的平板。

  • 1.armeabi:默认选项,将创建以基于
    ARM v5TE 的设备为目标的库。 具有这种目标的浮点运算使用软件浮点运算。使用此 ABI (二进制接口)
    创建的二进制代码将可以在所有 ARM\
    设备上运行。所以armeabi通用性很强。但是速度慢
  • 2.armeabi-v7a:创建支持基于
    ARM* v7 的设备的库,并将使用硬件 FPU 指令。armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。
  • 3.x86:支持基于硬件的浮点运算的
    IA-32 指令集。x86是可以兼容armeabi平台运行的,无论是armeabi-v7a还是armeabi,同时带来的也是性能上的损耗,
    另外打包出的x86的so,总会比armeabi平台的体积更小。

如果项目只包含了armeabi,那么在所有Android设备都可以运行;
如果项目只包含了armeabi-v7a,除armeabi架构的设备外都可以运行;
如果项目只包含了x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的;
如果同时包含了 armeabi, armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。

最后的最后,如果我们只想支持armeabi-v7a,那么需要在gradle中配置(因为默认情况下,打包后会自动生成armeabi到x86的所有文件夹。这就有可能导致一些x86的设备因为在x86文件夹下找不到so文件而崩溃)

1
2
3
4
5
defaultConfig {
ndk {
abiFilters "armeabi-v7a"
}
}

FFmpeg 视频旋转、混音等常用命令

发表于 2019-03-06

1.audio

1
ffmpeg -i test.aac -i test.mp3 -filter_complex "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.9[a0]; [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; [a0][a1]amerge=inputs=2[aout]" -map "[aout]" -ac 2 mix_v0.5.aac

2.video

1
ffmpeg -i test.mp4 -i test.mp4 -filter_complex "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.9[a0]; [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; [a0][a1]amix=inputs=2:duration=first[aout]" -map "[aout]" -ac 2 -c:v copy -map 0:v:0 mix_amerge.mp4

3.视频旋转(rotate 90度)

1
ffmpeg -y -i test.mp4 -metadata:s:v rotate=90 -codec copy test_.mp4

4.多个视频合成(相同码率、分辨率等)

1
ffmpeg -y -f concat -safe 0 -i concat.txt -c copy composer.mp4

注:concat.txt内容为多个视频路径

1
2
3
file 1.mp4
file 2.mp4
...

Android DELETE_FAILED_INTERNAL_ERROR 问题

发表于 2019-03-01
1
2
3
4
Installation failed with message Failed to establish session.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?

点击确定 提示:DELETE_FAILED_INTERNAL_ERROR,还是无法安装,哪怕把手机上已经安装了的卸载也没用。

解决方式:
1、app\build\intermediates文件夹直接删除或者app\build\intermediates\split-apk

2、关闭即时运行File-Settings-Build-Instant Run

3、如果是小米手机,进入其开发者模式,在最下面有一个启用MIUI优化选项,关闭重启即可。

because an app is obscuring a permission request

发表于 2018-03-02

Android 调试遇到了一个奇葩的问题,usb调试授权时提示:

Because an app is obscuring a permission request, Settings can't verify your response

真奇葩

1
2
3
4
5
6
7
8

解决方式:

三星手机:设置-应用程序-点右上角的三个点,特殊访问,可出现在顶部的应用程序,全部关掉(先截图记住哪些是开的),就能正常USB调试连接了,然后再按截图情况恢复权限。

魅族手机:Flyme系统关闭悬浮球功能即可,妖孽

OPPO/VIVO 跟魅族一样~

解决前端html请求接口跨域的问题几种方式

发表于 2018-01-02

做前端开发,调用接口无可避免的会遇到跨域的问题,一般有以下几种解决方式:

  1. 前端跟后端跟同一域下运行(前后端分离,每次更新测试都得部署一遍,累)
  2. CORS跨域,后端接口返回时在header加入’Access-Control-Allow-origin’:* 之类的通关文牒(后端小哥哥才没空理你呢)
  3. 自己动手丰衣足食,搭载个nginx,根据接口URL做代理转发(简单方便不麻烦人,别跟我说看不懂或不想配置)
  4. 用nodejs充当个中间件,转发处理,原理跟nginx差不多(nodejs跟JavaScript相同,学起来不难)

附:nodejs使用http-proxy-middleware教程,点击即达。

123…8
Waychel

Waychel

关注互联网、物联网、创业、产品、技术

36 日志
9 标签
© 2014 - 2022 Waychel
粤ICP备14032841号-1