自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

along

求知求索

  • 博客(301)
  • 资源 (3)
  • 收藏
  • 关注

原创 macos下的神器

OmniDiskSweeper查看磁盘空间占用,找到空间被耗完的罪魁祸首。比disk map好用多了Tencent Lemon类似CleanMyMac的开发工具

2021-01-19 20:35:23 522 1

转载 Android Native 开发之 NewString 与 NewStringUtf 解析

转自:https://blog.csdn.net/self_study/article/details/78886686本文将从一个 Native Crash 分析入手,带大家了解一下我们平时开发中常用容易忽略但是又很值得学习底层源码知识。一、问题起因最近在项目中遇到一个 native crash,引起 crash 的代码如下所示:jstring stringTojstring(JNIEnv* env, string str) { int len = str.length(); wc

2021-01-13 21:01:04 1949

转载 ijkplayer源码分析之surface与opengl关联初始化

转自:https://www.jianshu.com/p/84151c863c72上层java代码IjkMediaPlayer.java构造方法step 1: IjkMediaPlayer() |--this(sLocalLibLoader); |--initPlayer(libLoader); |--loadLibrariesOnce(libLoader); //加载所需要的库 | |--libLoader.

2021-01-05 15:00:54 800

翻译 Smart Pointer Programming Techniques

转自:https://www.boost.org/doc/libs/1_74_0/libs/smart_ptr/doc/html/smart_ptr.html#techniquesboost写的智能指针技术,陈硕也在书里推荐过,确实写得很不错,20个tips很快就可以看完Using incomplete classes for implementation hidingA proven technique (that works in C, too) for separating interf.

2020-09-30 10:55:05 330

转载 (Xcode) 編譯器小白筆記 - LLVM前端Clang

转自:https://juejin.im/post/6844903716709990414做笔记之用(Xcode) 編譯器小白筆記 - LLVM前端Clang本文为笔记型式呈现,并非全部原创,来源见文末CompilerClang - LLVMApple(包括中后期的NeXT) 一直使用GCC作为官方的编译器。GCC作为开源世界的编译器标准一直做得不错,但Apple对编译工具会提出更高的要求。Clang这个软体专案在2005年由苹果电脑发起,是LLVM编译器...

2020-08-07 14:02:12 484

转载 Chromium 基础库使用说明

转自:https://www.zybuluo.com/rogeryi/note/56894Chromium 基础库使用说明chromiumbase作者: 易旭昕 (@roger2yi)Chromium 提供了一个类似 WTF 的基础库,甚至包含了更多的内容。这个基础库在 Blink 之外被广泛使用(Blink 里面仍然使用的是 WTF),了解它的使用对我们实际的代码编写是十分重要的。本文主要介绍 Chromium 基础库包括的主要内容,并详细说明一些重要类型的使用方式。如果需要了解某...

2020-07-10 17:05:27 1388

翻译 Android CPU, Compilers, D8 & R8

译文转自:https://juejin.im/post/5d70fb2ce51d4557ca7fddaa很好的一篇文章,强烈推荐看下Android CPU, Compilers, D8 & R8此为译文,原文:Android CPU, Compilers, D8 & R8 – ProAndroidDev设想你被分配了一项重要的太空探索任务。你需要建造一艘非常可靠的飞...

2020-04-02 13:26:39 766

翻译 Run ARM apps on the Android Emulator

以前debug Android程序都是用实体机debug,没有用虚拟机的原因是手机App里带有第三方so,这些so还只有armeabi架构,直接运行在虚拟机里会直接crash。找过一些x86模拟arm的插件,但是效率堪忧,慢的折腾人。最新AS官方退出了Android 11的模拟器,可以直接利用x86的cpu的能力,只中转需要的代码,大家可以试下。我已经在MAC上试过了,启动过程中crash...

2020-04-01 16:55:26 631

原创 Android Bitmap转I420的坑,以及图文详解YUV420数据格式

今天Android要把Bitmap里的数据转成I420,用的YUV库,但是总有色差。查了好久,最终发现libyuv里的名字和我们外面常用的正好相反,比如`libyuv::ABGRToI420`,输入的数据格式要是ARGB_8888,这应该是位高低常用读法不同。给个示例:Java层代码:int width = bitmap.getWidth();int height = bitm...

2020-03-09 19:13:01 2805 1

翻译 iOS CPU架构 arm64/armv7s/armv7/armv7k/i386/x86_64

转自:https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/CPU ArchitecturesWhen building for the Cocoa platform, Elements allows you to choose to build for different CPU Architectures,...

2020-01-30 01:01:48 1201

转载 How to mix C and C++

转自:https://isocpp.org/wiki/faq/mixing-c-and-cpp官方权威文档How to mix C and C++Save to:InstapaperPocketReadabilityContents of this section:What do I need to know when mixing C and C++ code? H...

2020-01-20 19:56:43 417

转载 应用与系统稳定性第三篇---FD泄露问题漫谈

cat /proc/pid/limits 查看最大打开文件Max open filescat /proc/pid/fd 查看打开文件cat /proc/sys/kernel/threads-max 查看线程最大创建数目转自:https://www.jianshu.com/p/1f9cff12b84f备份防丢。在正式解释什么是fd泄露的时候,先看看三份log,是否有眼熟而不知所措...

2020-01-15 10:08:38 3204

翻译 Android NDK Debug

前言:说真的Android NDK debug还是推荐lldb,gdb经常莫名其妙的不成功。不过下面的这个流程是谷歌官方建议的,还是有参考价值的。尤其是在App启动时Debug的流程。lldb debug的文章推荐:https://fucknmb.com/2019/12/06/Flutter-Engine-C-%E6%BA%90%E7%A0%81%E8%B0%83%E8%AF%95%E5%8...

2020-01-14 21:57:18 457

翻译 Advice for Middleware Vendors JNI中间件厂商开发建议

Advice for Middleware VendorsDistributing middleware built with the NDK imposes some additional problems that app developers do not need to worry about. Prebuilt libraries impose some of their imple...

2020-01-13 17:49:40 251

翻译 Android bionic 和 其中的libc由什么组成

What are the big pieces of bionic?libc/ --- libc.so, libc.aThe C library. Stuff likefopen(3)andkill(2).libm/ --- libm.so, libm.aThe math library. Traditionally Unix systems kept stuff like...

2020-01-07 21:15:44 1555

转载 手把手教你编译Flutter engine

转自:https://juejin.im/post/5c24acd5f265da6164141236推荐原文阅读,备份防丢手把手教你编译Flutter engine欢迎关注姊妹篇《手把手教你解决flutter engine内存泄漏》《flutter engine编译问题汇总》flutter已经到了1.7 了,小伙伴还没有使用的赶紧试试吧,如果想更...

2019-12-31 16:06:51 3921 1

转载 Flutter Engine C++ 源码调试初探

原文:https://fucknmb.com/2019/12/06/Flutter-Engine-C-%E6%BA%90%E7%A0%81%E8%B0%83%E8%AF%95%E5%88%9D%E6%8E%A2/备份防丢,推荐上述链接阅读在Flutter Engine的自定义过程中,难免会对其进行调试,所谓工欲善其事必先利其器。调试的手段有多种,一般以日志输出和断点调试为主。本...

2019-12-31 15:53:22 4096 1

转载 Android so 加载原理分析

1.loadLibrary动态库加载过程分析http://gityuan.com/2017/03/26/load_library/2.深入理解 System.loadLibraryhttps://pqpo.me/2017/05/31/system-loadlibrary/查看Android源码:https://cs.android.com/防止原文丢失,备份,推荐...

2019-12-30 13:31:42 1175

原创 Android 热修复方案Tinker 系列文章

最近在看flutter热更新,需要看下so的热更新,找到了下面的系列文章,写的很不错。Android 热修复方案Tinker(一) Application改造Android 热修复方案Tinker(二) 补丁加载流程Android 热修复方案Tinker(三) Dex补丁加载Android 热修复方案Tinker(四) 资源补丁加载Android 热修复方案Tinker(五) SO补丁...

2019-12-13 18:03:43 229

原创 C++的一个Tip:如何确定snprintf需要多大空间

const char *fmt = "sqrt(2) = %f";int sz = std::snprintf(nullptr, 0, fmt, std::sqrt(2));std::vector<char> buf(sz + 1); // note +1 for null terminatorstd::snprintf(&buf[0], buf.size(), fmt...

2019-11-28 16:33:09 534

原创 导出ANR、tombstones文件 - 无惧Permission denied

1. root手机导出这个没什么可说的,adb pull就行,提示权限不够的话,adb root.down下来某个文件:adb pull /data/anr/traces.txtdown下来整个文件夹adb pull /data/anr2. 新版本手机新版本手机有的可以进入/data/anr, 有的没有权限进入,但不管能不能进入,都没有权限~ ❯❯❯ adb...

2019-11-26 21:21:55 2902

原创 Learn OpenGL/WebGL资源

1. learn opengl 中文翻译版https://learnopengl-cn.github.io/2. 没必要非要揪着opengl不放,从webgl入手更方便。这里有dart和webgl结合的教程https://github.com/jtmcdole/dart-webglopengl这个API是一部分,更重要的是shader编写,所以先找个方便的环境入门即可。...

2019-11-26 15:02:49 634

原创 Android性能优化 相关文档

最近遇到Android性能优化问题,使用AS的profile看了下堆栈,“nSyncAndDrawFrame 耗时过长”,然后打开GPU渲染分析,红色线条很长。GPU渲染时的每个颜色代表的意义如下:一般主要看深绿色和红色就行,意义如下:第一步是由应用程序进程的Main Thread构建Display List,即updateRootDisplayList方法,对应Gpu呈现模式分析...

2019-10-31 14:08:09 566

原创 Linux下如何解压tar.gz和tar.bz2和zip

格式来源linux下经常使用tar来打包文件,这样做的原因是tar打包可以保持原有文件夹的属性,比如可执行或者可读可写等。tar只是将文件打包,文件的大小并没有变化。在tar的基础上使用gzip压缩时,我们得到了.tar.gz格式文件;在tar的基础上使用bzip2压缩,我们得到了.bar.bz2。解压tar.gztar -zxvf demo.tar.gz参数解释:-z gzip-x...

2019-10-23 20:07:19 534

原创 flutter web之WebSocketChannelException错误

flutter最近新功能增加挺多,试了FFI后,尝试下flutter web,但是执行flutter run -d chrome时却报如下错误:~/w/f/flutter_web_demo ❯❯❯ flutter run -d chrome ✘ 1Launchin...

2019-10-15 21:04:48 4228

原创 Git进阶:你不知道的git stash 和 git worktree

git中比较有用的两个命令, git stash 和 git worktree, 你值得了解一下1. Git和SVN的别样比较部门从SVN签到了Git, 总算跟上了潮流的脚后跟. 其实从技术的角度来说, SVN没有那么烂. 但是从当今的角度来说, Git已经代表潮流, SVN已经没落并将持续没落下去, 继续把宝贵的时间投入到SVN这种注定没落的技术上, 实在是得不偿失.不信? 看下goo...

2019-10-15 21:03:18 1362

原创 ffmpeg常用命令及解释

1. 从一个简单转码示例ffmpeg <global> <in-opts> -i <input> <out-opts> <output>ffmpeg -i sample.mov -c:v libx264 -c:a aac sample.mp4解释:-i sample.mov 输入文件-c:v libx264 -c表示哪个cod...

2019-09-30 11:18:48 835

原创 FFmpeg里的Bitstream Filter

Bitstream FilterBitstream Filter: A bitstream filter operates on the encoded stream data, and performs bitstream level modifications without performing decoding.比特流滤波器作用在编码后的数据上,而不是未压缩的数据。在不解码的基础...

2019-09-30 11:17:46 1283

原创 录音与播放示例, 以Android AAudio为例

最近看了谷歌的codelabs介绍AAudio的示例, 写的还不错, 把主要问题介绍清楚了, 对音频这块感兴趣的可以看下. 当然实战还是推荐Oboe库.1. 示例1, 主要讲了怎么创建一个声音合成器, 生成不同频率的正弦波.https://codelabs.developers.google.com/codelabs/making-waves-1-synth/#0这个程序可提升的...

2019-09-10 21:44:06 2401

原创 ndk C++ 编译器的函数名修饰规则

前言:最近ndk debug好痛苦,堆栈里都是C++修饰过的名字,每次转化成实际的类和方法都要脑子里转一下,虽说c++filt可以转换,但是转换后可能更蒙蔽。。。这里贴出两篇文章供参考。c++filt -n _ZNSt6__ndk113__tree_removeIPNS_16__tree_node_baseIPvEEEEvT_S5_void std::__ndk1::__tree_re...

2019-08-15 20:50:29 1548

原创 macos git: 'credential-wincred' is not a git command. See 'git --help'

解决办法:git config --unset-all credential.helpergit config --global credential.helper osxkeychain原因:The problem is that you're trying to use thewincredcredential helper, which is only availa...

2019-08-14 16:29:46 5829 1

翻译 Build/Host/Target 通俗易懂 的 解释

GNU triplet conventionAccording to the GNU convention, there are three platforms involved in the software building:Build platform:The platform on which the compilation tools are executed Host pl...

2019-08-14 11:22:55 972

翻译 cmake-tutorial cmake入门指引

转自:https://cmake.org/cmake-tutorial/虽然讲解不深,但盛在全面Below is a step-by-step tutorial covering common build system use cases that CMake helps to address. Many of these topics have been introduced in...

2019-08-14 11:09:40 413

翻译 Android Studio 最新debug工具及与老版本工具对应关系

Android Device Monitor component What you should use Dalvik Debug Monitor Server (DDMS) This tool is deprecated. Instead, useAndroid Profilerin Android Studio 3.0 and h...

2019-08-01 13:32:18 318

原创 H.264的两个概念:DC系数和AC系数

在做熵编码之前,先明确两个概念:DC系数和AC系数。量化后得到的仍是64个系数,量化并没有改变系数的性质。大家知到DCT变换是将数据域从时(空)域变换到频域,在频域平面上变换系数是二维频域变量u和v的函数。对应于u=0,v=0的系数,称做直流分量,即DC系数,其余63个系数称做AC系数,即交流分量。DC系数:对应于u=0,v=0的系数,称做直流分量,即DC系数。AC系数:其余63个系数...

2019-07-24 21:16:08 3344

原创 TiB、TB的区别

使用谷歌的单位转换,忽然糊涂了,对着Terabyte和Tebibyte, 知道应该是2进制和十进制的区别,单愣是不知道哪个应该是二进制。查了下,解释如下,tebi是IEC1998年创建的新单位,这以前大家都2进制十进制糊涂的混用着。现在标准用法是Tib是二进制, TB是十进制。The International Electrotechnical Commission (IE...

2019-07-24 16:30:36 10671

原创 NDK开发之 Undefined Reference to Typeinfo

最近给现在代码增加个功能,可以使用代理走向内网指定服务器,但是功能增加后一直编译不过,报错:"Undefined Reference to Typeinfo HttpClient", 很奇怪,代码看着没什么问题,就是编译不过。CPP最烦的就是不说人话。。。要让你去猜查了网上的资料, 发生这种情况一般是 :虚函数未实现产生”undefined reference to `typei...

2019-07-23 13:27:46 573

原创 ffmpeg 开启https, 提示“ERROR: openssl not found”

ffmpeg 可以使用libssl.so libcrypto.so动态库, 或者使用libssl.a libcrypto.a静态库, 接下来是说明明库存在,但是编译还是提示找不到openssl。搜索ffmpeg源码,可以发现是在configure文件里打印的该提示。 源码如下:enabled openssl && { use_pkg_config op...

2019-07-20 21:30:14 8401 4

原创 Android下使用objdump查看导出的函数表

Android下为了查看so的导出函数,有两种方法。nm -D ffmpeg.soobjdump -tT ffmpeg.so这里推荐第二种方法, 因为遇到问题相对好查,nm在google里稍难匹配到你要的意思。下面试使用objdump后, 每一行和每一列的数据的意义:ibcrypto.so: file format elf32-littlearmSYMBOL TABLE...

2019-07-20 18:53:51 2245

转载 如何构建和修改Docker 镜像

转自:https://cloud.tencent.com/document/product/857/18200主要是修改镜像后如何提交这里需要记下。说明DockerHub 提供了大量的镜像可用,详情可查看 DockerHub 官网。Docker 容器的设计宗旨是让用户在相对独立的环境中运行独立的程序。Docker 容器程序在镜像内程序运行结束后会自动退出。如果要令构建的镜像在服务中持续...

2019-07-18 20:55:30 1256

netlib-native_system-win-x86_64全套

libblas3.dll libgcc_s_seh-1.dll libgfortran-3.dll liblapack3.dll libopenblas.a libopenblas.dll libopenblas.dll.a libquadmath-0.dll netlib-native_system-win-x86_64.dll

2015-12-14

windows下快速安装python中的setuptools脚本

如安装chardet需要先安装setuptools,但是网上方法好多莫名其妙 网上查了好多方法最后才在官网找到这个脚本,非常方便

2013-10-02

OPENGL所需库及环境变量配置

OPENGL所需库及环境变量配置 +---GLee5_4 | extensionList.txt | GLee.c | GLee.h | GLee.lib | readme.txt | +---glew-1.5.1-win32 | | LICENSE.txt | | | +---bin | | glew32.dll | | glewinfo.exe | | glewinfo.txt | | visualinfo.exe | | | +---doc | | advanced.html | | basic.html | | credits.html | | glew.css | | glew.html | | glew.png | | glew.txt | | glxew.html | | gpl.txt | | index.html | | install.html | | khronos.txt | | log.html | | mesa.txt | | new.png | | ogl_sm.jpg | | wglew.html | | | +---include | | \---GL | | glew.h | | wglew.h | | | \---lib | glew32.lib | glew32s.lib | +---glut-3.7.6-bin-32and64 | glut.def | glut.h | glut32.dll | glut32.lib | glut64.dll | glut64.lib | README-win32.txt | +---glutdlls37beta | GL.h | GLU.h | glut.dll | glut.h | glut.lib | glut32.dll | glut32.lib | \---OpenGL开发库 GL.H GLAUX.H GLAUX.LIB GLEXT.H GLU.DLL GLU.H glu.lib GLU32.LIB GLUT.DLL GLUT.H glut.lib GLUT32.DLL GLUT32.LIB OPENGL.DLL opengl.lib OPENGL32.LIB OpenGL开发库.rar OpenGL环境设置.txt WGLEXT.H

2013-04-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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