自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yeshen.org

个人公众号:生的就酱

原创 webview拦截请求

需求背景是有些H5上的请求需要拦截掉,直接返回失败/空。留给笔记… // mWebview.setWebChromeClient(new NChromeClient()); private final class NWebViewClient extends WebViewClient { ...

2020-05-21 18:49:36 33 0

原创 记一次 boringssl crash

背景是我们的项目有用到boringssl。然后用户(魅族手机)报了一个bug,使用arm64的库的时候,会crash。但是使用armv7的库时不会。 我找了日志,定位到代码crash的代码在 https://boringssl.googlesource.com/boringssl/+/refs/...

2020-05-19 10:42:11 15 0

原创 应用图标的设计规范和开发须知

背景的昨天应用图标出了一点问题。设计师出了一个透明背景的图标,我直接放了上去,有些手机能把透明效果显示出来。 显示出来之后,存在的问题是: 市面上较少透明背景的图标,我们的应用显得比较突兀。(其实是存在透明背景的应用的,比如gmail,但是它的对比度比较高,所以不容易湮没在背景中) icon本身...

2020-05-17 09:20:38 33 0

原创 两个RGBA颜色合并

参考 https://gist.github.com/JordanDelcros/518396da1c13f75ee057 var funcPrint = function(out){ console.log('red:', out[0].toString(16)); ...

2020-05-06 13:37:06 57 0

原创 mpv安装

mpv是一个播放视频的软件。 升级了一下brew,发现mpv的功能不能用了。 上午查了一会,发现是之前安装的方式不对。 应该是这样安装: brew uninstall mpv brew cask install mpv ...

2020-04-28 08:26:37 50 0

原创 Android中物理输入设备的接入与使用

Android中物理输入设备的接入与使用 Android可以使用蓝牙接入手柄,蓝牙接键盘、OTG接键盘鼠标。本文整理了关于如何处理这些外部设备的输入信息的方法。 设备接入后,Android系统会做一次中转。,把具体的事件按照传统的Android事件做分发。 作为开发者,我们要处理以上全部的硬件事件...

2020-04-27 23:23:35 29 0

原创 android导出anr文件

adb bugreport # long long waiting 7z x xxx.zip

2020-04-21 19:53:25 47 0

原创 H5获取设备信息

H5获取设备信息 背景是有个同事在问这个事情,我吃完饭,也跟着看了一下。有如下一下可行的方法 navigator.userAgent window.devicePixelRatio screen.height screen.width navigator.platform navigator....

2020-03-18 20:00:04 446 0

原创 简单web服务器

背景是我带了两个小朋友,最近有个自学任务,要搭建一个简单的web服务器。猜课程的目的应该是考察协议的设计。 利用现成的框架 利用Java中现成函数、利用现成的C语言库 我晚上抽一个小时简单整理下,权做抛砖引玉吧。 利用现成的框架 sample.py #!/usr/bin/env python ...

2020-03-16 23:31:19 18 0

原创 jni的一些常见问题

虽然现在工作中常常要去看c++的代码,但是实事求是的说,写jni的东西相对比较少。最近写了一点相关的代码。这里也整理一下笔记。 字符串操作请用 std::string android jni提供的函数只是转到char*,当时很多常见的字符串操作,比如substring、replace、find都是...

2020-03-14 17:28:20 28 0

原创 APK逆向基础之拆包与合包的方法

最近测试的同学在看验证安全性的逻辑。我去她那里观摩了一下她的操作。发现她一套流程走下来有点折腾。想着今后也许还有东西需要测试同事帮忙验证,我这里把拆包合包的东西整理出来好了。 如何拆包? https://ibotpeaches.github.io/Apktool/install/ apktool ...

2020-03-14 16:05:07 315 0

原创 QQ钱包的接入及其设计分析

版权申明:未经允许请勿转载。转载前请先联系作者(hello@yeshen.org) 最近接了一下QQ钱包的客户端。官方文档在这里 PS:官方文档其实已经很详细了。 如何接入 step 1 从服务端获取一包支付数据,构造一个PayApi的对象 step 2 做一下安装检查、版本检查、参数检查,检查...

2020-03-14 12:50:25 186 0

原创 猜测houdini的实现

写这个的目的的有一天在排队吃饭的同时,同事说他对houdini很有兴趣,问我知不知道里面是怎么做的。我其实也不清楚,所以趁着排队的时间,两个人推了一轮可能的实现。下文是我们的猜测。 houdini是什么? houdini是一个库,做指令翻译的。把arm的精简指令翻译成x86的复杂指令。 什么是指令...

2019-12-21 18:28:28 82 0

原创 iOS的维护记录

最近需要维护iOS的产品,整理下从代码提交到appstore的流程。 fastlane打包出最新的ipa包 把ipa包上传到appstore https://help.apple.com/app-store-connect/#/devb1c185036 简单点可以下载Transporter A...

2019-12-12 10:30:03 37 0

原创 Android Pointer Lock 的支持办法

从技术角度出发,就是H5上的“Pointer Lock”在Android浏览器上无法支持到。 https://www.chromestatus.com/feature/6753200417800192 Pointer Lock的效果是: 隐藏鼠标 给原生的鼠标事件到对应的节点,即传输鼠标移动...

2019-12-11 15:23:50 32 0

原创 xargs与批量处理文件

总是忘记参数… 可以这样批量处理文件 ls | xargs -I {} sh -c ' ls {} && echo ":" && cat {}'

2019-12-08 11:50:58 42 0

原创 Android中音频设置的那些事情

最近遇到很多声音方面的问题,仔细的研究了一轮。之前也看过书,但是实际上还是有很多问题。关于耳机、蓝牙、外放、声音通道等等的处理。 值得一提的是,Android中系统承包了音频的控制,所以设置对媒体通道,也就完成了80%的功能。 这也是我请教别人我遇到的问题,别人总是莫名其妙的原因,因为系统把事情都...

2019-11-26 19:45:13 47 0

原创 Android的消息提醒

背景是弹出消息消息,许多年前写过,但是最近发现哪些代码不能用了。兼容到Android N可以这样写。 public static void showMessageNotification(Context context, String title, String body) { Notif...

2019-11-26 19:15:10 27 0

原创 android 升级webview的方法

之前整理过系统应用的安装方法,大概是这样:android_x86 添加预安装APP 最近要手动升级一下webview,升级的方法是这样的: 将com.android.webview_apkmirror.com.apk重命名为webview.apk,然后替换掉/system/app/webvie...

2019-10-10 10:39:36 2210 0

原创 什么是jitter

设计背景 jitter(也称为等待时间或延迟)是数据包从一个点到达另一个点所花费的时间。 JitterBuffer 是用于捕获传入数据包的临时存储缓冲区。 它用于基于数据包的网络中,通过在网络拥塞期间使数据包到达时间变平滑来确保音频流的连续性。 数据包独立传输,到达时间会因网络拥塞和所用网络的类型...

2019-10-09 21:20:00 278 0

原创 webrtc 计算解码时间的方法

Q:如何计算? 解码的关键代码在这里:AndroidVideoDecoder.java private static class FrameInfo { final long decodeStartTimeMs; final int rotation; FrameInfo(long deco...

2019-10-09 17:03:42 93 0

原创 adb解锁屏幕

adb shell input keyevent 82

2019-09-26 09:21:00 2049 0

翻译 流媒体传输质量指南

原文: https://tl.net/forum/tech-support/220584-stream-quality-guide 该文将尝试解释哪些因素会影响流质量,并希望对配置流时应注意的内容提供一些见解。 由于要考虑的因素太多,因此我不提倡任何特殊的流式传输方法,但是希望这可以提供一些有关...

2019-09-23 14:57:44 95 0

原创 H5应用打开优化

最近上了一个重度依赖H5的应用。自测过程中发现首屏打开有白屏,一闪而过。 我怀疑是H5的实现有问题,所以我自己弄了一个简单的H5页面。 <!DOCTYPE html> <html lang="en"> <head> <meta ...

2019-09-12 15:24:36 37 0

原创 计算机是什么

本文同步发于微信公众号(生的就酱) https://mp.weixin.qq.com/s/hh-BzjveoL26G3s5tqEoRg 越是大众的读物越容易有错误。 本文也是如此。 计算机的设计初衷是为了做计算。以前的人们也需要计算。在《谈音律》这篇文章中,朱载堉利用一个八十一位的超大算盘,计算...

2019-09-07 13:41:33 107 0

原创 webrtc 海思芯片解码出错的解决办法

webrtc-android h264只支持 OMX.Exynos、OMX.Intel、OMX.Nvidia、 OMX.qcom 这几个的硬解。不支持软解. 支持软解我做了,记录在这篇博客中。 支持海思芯片的硬解,只要改下 HardwareVideoEncoderFactory::isHardwa...

2019-08-29 21:26:10 697 0

原创 某云游戏应用拆解

最近看到某个云游戏应用,资源开销特别低。 2%的CPU消耗,都让我怀疑它是不是云游戏了。 下面是拆解的记录,是个人笔记来着,如果无意间侵犯了你的专利,请告知我。 拆解 我现在能玩的只有一个免费的游戏(链接双子),我之前的测试也是基于这个游戏(2%的CPU消耗)。 游戏的界面的主Activity是P...

2019-08-21 22:27:28 423 0

原创 微信H5支付原生支持

微信H5支付原生支持 最近有个报错,就是微信支付没办法调用起微信。然后支付中断了。网页端的小伙伴给了一个测试地址 https://wxpay.wxutil.com/mch/pay/h5.v2.php 最后是这样处理的: private final class NWebViewClient ex...

2019-08-20 15:05:56 314 0

原创 android native crash日志解析

背景是上一篇博客遇到了问题。crashlytics的解析符号没解析出来,./gradlew crashlyticsUploadSymbolsRelease 执行了也没起什么作用。 嗯,这个问题先从 so 库的一些背景知识说起。 什么是 so http://tldp.org/HOWTO/Progr...

2019-08-18 12:00:16 245 0

原创 crashlytics接入指北

最近因为工作需要,接了一下crashlytics。接入的时候主要是看这个几个资料。 https://fabric.io/kits/android/crashlytics https://firebase.google.com/docs/crashlytics/get-started?platfo...

2019-08-18 10:01:18 344 0

原创 apk支持HEVC的检查方法

检查方法一:代码检索法 apktool d xx.apk grep -rn hevc ./* 使用该方法原因: 解码器的设置必须有字符串 video/hevc、 hevc 检查方法二:运行检查法 adb logcat | grep hevc # OMXMaster: makeComponent...

2019-08-13 17:35:20 80 0

原创 GN build 中增加编译选项的方法

官方文档见: https://www.chromium.org/developers/gn-build-configuration 修改 //build/config 中的字段即可,比如config/android/config.gni # enble yeshen debug config y...

2019-07-30 16:57:09 479 0

翻译 RTP Payload Format for High Efficiency Video Coding (HEVC)

This memo describes an RTP payload format for the video coding standard ITU-T Recommendation H.265 and ISO/IEC International Standard 23008-2, both a...

2019-07-27 21:06:44 177 0

原创 webrtc rtp解码流程分析

最近在研究webrtc的视频编码的东西。是解码的时候出现了问题,带着问题,现在研究下WEBRTC H264的编解码流程。 代码入口在这里-> rtp_video_stream_receiver.cc 1, RTP的数据获取之后,传递给 RtpVideoStreamReceiver::On...

2019-07-24 20:17:35 481 0

原创 ffmpeg视频推流的方法

UDP # push stream local ffmpeg -re -i h264.mp4 -vcodec copy -f h264 udp://127.0.0.1:1234 # play stream ffplay udp://127.0.0.1:1234 ffplay -f h264 u...

2019-07-23 14:21:44 5078 1

原创 screen:保持ssh中断,任务不断的方法

最近在弄一个东西,要开一个临时的服务器,但是ssh隔太久就自动断开了,我这边实在是很困扰。之前看到同事在用screen,但是好像我用得不对,还是会断开。 嗯,确实是我用得不对,文档地址在这里:https://linuxize.com/post/how-to-use-linux-screen/ 先连...

2019-07-23 09:36:00 484 0

原创 webrtc音量调节的方法之二

先吐槽下csdn。 一堆影响阅读的广告。 编辑功能越做越难用。 原来我可以在侧边栏放个公众号的连接的,也转收费功能了。 版权申明也搞得乱七八糟。 留言排版很诡异。 这里进入正文。。 这篇文章是上一篇文章留下的手尾。 测试的时候被投诉的点有两个,一个是声音忽大忽小,二是调节通话音量能影响初始化声...

2019-07-13 16:52:46 1189 0

原创 Android 全面屏的那些适配方法

原本以为只是很简单的功能。虽然最后发现确实是简单的功能。 但是前前后的调整接近一天,这里留下记录,如何处理吧。 一、无边界的屏幕 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // transparent-sta...

2019-07-13 16:32:59 352 0

原创 retrofit https 混淆规则

最近有个开发任务,然后前期都是用ip开发的~~(好像有点业余。。。)~~ 然后上正式服,有https证书,然后报错了。报错信息是这样的 07-12 17:14:53.284 2581 2600 W System.err: java.lang.AssertionError: impossible...

2019-07-12 17:32:15 129 0

原创 avc 转 hevc

avc 转 hevc ffmpeg -i h264.mp4 -c:a copy -c:v libx265 h265.mp4 ffprobe h265.mp4 ffprobe version 4.1.1 Copyright © 2007-2019 the FFmpeg developers bui...

2019-07-10 20:17:14 321 0

提示
确定要删除当前文章?
取消 删除