<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[beyond702的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/beyond702</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; beyond702]]></copyright><item><title><![CDATA[【Android 音视频开发打怪升级：FFmpeg音视频编解码篇】一、FFmpeg so库编译]]></title><link>https://blog.csdn.net/beyond702/article/details/105589461</link><guid>https://blog.csdn.net/beyond702/article/details/105589461</guid><author>beyond702</author><pubDate>Fri, 17 Apr 2020 21:57:42 +0800</pubDate><description><![CDATA[转自：https://juejin.im/post/5e130df55188253a8b42ebac

目录

一、Android音视频硬解码篇：

1，音视频基础知识
	2，音视频硬解码流程：封装基础解码框架
	3，音视频播放：音视频同步
	4，音视频解封和封装：生成一个MP4
二、使用OpenGL渲染视频画面篇

1，初步了解OpenGL ES
	2，使用OpenGL渲染视频画面
	3，Ope...]]></description><category></category></item><item><title><![CDATA[安卓动态调试七种武器之离别钩 – Hooking（上）]]></title><link>https://blog.csdn.net/beyond702/article/details/50721742</link><guid>https://blog.csdn.net/beyond702/article/details/50721742</guid><author>beyond702</author><pubDate>Fri, 17 Apr 2020 21:53:08 +0800</pubDate><description><![CDATA[作者：蒸米

地址：http://drops.wooyun.org/tips/9300



0x00 序



随着移动安全越来越火，各种调试工具也都层出不穷，但因为环境和需求的不同，并没有工具是万能的。另外工具是死的，人是活的，如果能搞懂工具的原理再结合上自身的经验，你也可以创造出属于自己的调试武器。因此，笔者将会在这一系列文章中分享一些自己经常用或原创的调试工具以及手段，]]></description><category></category></item><item><title><![CDATA[mediacodec和OpenGLES纹理共享方案]]></title><link>https://blog.csdn.net/beyond702/article/details/103017874</link><guid>https://blog.csdn.net/beyond702/article/details/103017874</guid><author>beyond702</author><pubDate>Mon, 11 Nov 2019 20:58:58 +0800</pubDate><description><![CDATA[1、OpenGL生成纹理

2、纹理绑定到SurfaceTexture上

3、用SurfaceTexture做参数创建Surface

4、MediaCodec解码的视频就往Surface发送，就显示出画面了

直接上代码

vertex_shader.glsl


attribute vec4 av_Position;
attribute vec2 af_Position;
varyin...]]></description><category></category></item><item><title><![CDATA[SO文件包大小优化]]></title><link>https://blog.csdn.net/beyond702/article/details/90475024</link><guid>https://blog.csdn.net/beyond702/article/details/90475024</guid><author>beyond702</author><pubDate>Thu, 23 May 2019 10:10:29 +0800</pubDate><description><![CDATA[1、编译参数--ffunction-sections，-fdata-sections，链接参数-Wl,--gc-sections，

   --ffunction-sections和-fdata-sections会把符号编译成单独的section，--gc-sections在链接的时候会去掉用不到的符号，从而减小包大小



2、-Ox，各个级别的包大小关系：-O3 &gt; -O2 &g...]]></description><category></category></item><item><title><![CDATA[C++内存布局详解]]></title><link>https://blog.csdn.net/beyond702/article/details/79185973</link><guid>https://blog.csdn.net/beyond702/article/details/79185973</guid><author>beyond702</author><pubDate>Sun, 28 Jan 2018 13:04:07 +0800</pubDate><description><![CDATA[C++类中有两种成员变量，三种成员函数：



其中对象的内存布局中只包含非静态的成员变量，静态的成员变量是在全局数据区。

C++中类的继承类型，以及对应的类实例内存布局如下图：



1. 单继承

继承情况如下：



对应的对象内存布局：



2. 一般多继承（非菱形）

继承情况如下：



对应的对象内存布局：



3. 一般多继承（菱形）

类继承情况：



对应的对象内存布局...]]></description><category></category></item><item><title><![CDATA[FLV文件格式详解]]></title><link>https://blog.csdn.net/beyond702/article/details/78929334</link><guid>https://blog.csdn.net/beyond702/article/details/78929334</guid><author>beyond702</author><pubDate>Fri, 29 Dec 2017 17:34:18 +0800</pubDate><description><![CDATA[具体格式可以参看 flv spec。



下面主要介绍上图中的Tag里面的字段，每个Tag由两部分组成：Tag Header和Tag Data。
1. Tag Header





名称

长度

介绍


Tag类型
1 bytes
8：音频
9：视频
18：meta
其他：保留


数据区长度
3 bytes
在数据区的长度]]></description><category></category></item><item><title><![CDATA[git tag使用方法]]></title><link>https://blog.csdn.net/beyond702/article/details/78304326</link><guid>https://blog.csdn.net/beyond702/article/details/78304326</guid><author>beyond702</author><pubDate>Sat, 21 Oct 2017 16:12:03 +0800</pubDate><description><![CDATA[原文地址：http://blog.sina.com.cn/s/blog_157abb48f0102wjcw.html

标签管理

发布一个版本时，我们通常先在版本库中打一个标签，这样，就唯一确定了打标签时刻的版本。将来无论什么时候，取某个标签的版本，就是把那个打标签的时刻的历史版本取出来。所以，标签也是版本库的一个快照。

Git的标签虽然是版本库的快照，但其实它就是指向某个comm]]></description><category></category></item><item><title><![CDATA[Android shell获取和模拟点击事件]]></title><link>https://blog.csdn.net/beyond702/article/details/69258932</link><guid>https://blog.csdn.net/beyond702/article/details/69258932</guid><author>beyond702</author><pubDate>Wed, 05 Apr 2017 16:13:50 +0800</pubDate><description><![CDATA[1. 获取点击屏幕的坐标位置

通过

adb shell getevent
命令获得点击屏幕的位置坐标的方法：



第一步：计算比例

首先通过命令
adb shell getevent -p | grep -e "0035" -e "0036"
获得event 体系里 宽（0035）和高（0036）
以当前我使用的手机为例，命令会输出如下信息：
0035  : ]]></description><category></category></item><item><title><![CDATA[Git永久删除commit]]></title><link>https://blog.csdn.net/beyond702/article/details/64549705</link><guid>https://blog.csdn.net/beyond702/article/details/64549705</guid><author>beyond702</author><pubDate>Tue, 21 Mar 2017 22:25:03 +0800</pubDate><description><![CDATA[工作中有一次不小心提交了不该提交的代码到GIT上，而且在发现之前又提交了几个commit，现在想在GIT服务器上永久删除这个commit，具体步骤记录如下。




    假设当前分支为master，当前的commit情况如下，现在需要删除commit_id_2和commit_id_4：
commit_id_1
commit_id_2
commit_id_3
commit_id_4
]]></description><category></category></item><item><title><![CDATA[Linux格式化Log宏]]></title><link>https://blog.csdn.net/beyond702/article/details/62458540</link><guid>https://blog.csdn.net/beyond702/article/details/62458540</guid><author>beyond702</author><pubDate>Thu, 16 Mar 2017 22:36:53 +0800</pubDate><description><![CDATA[#define PRINTF_DEBUG(args)  {\
    struct tm *__now; \
    struct timeb __tb; \
    char __datestr[16];\
    char __timestr[16];\
    char __mss[4];\
    ftime(&__tb); \
    __now=localtime(&__]]></description><category></category></item><item><title><![CDATA[git命令大全图]]></title><link>https://blog.csdn.net/beyond702/article/details/62219004</link><guid>https://blog.csdn.net/beyond702/article/details/62219004</guid><author>beyond702</author><pubDate>Wed, 15 Mar 2017 12:12:00 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Android ELF文件编译之符号隐藏]]></title><link>https://blog.csdn.net/beyond702/article/details/56281068</link><guid>https://blog.csdn.net/beyond702/article/details/56281068</guid><author>beyond702</author><pubDate>Tue, 21 Feb 2017 14:59:49 +0800</pubDate><description><![CDATA[编译系统是一套非常强大的系统，有众多的编译参数，但是大部分人只听过很少几个，希望以后能有时间好好看一下相关的资料研究清楚。
今天来介绍Android下面NDK编译so时，怎样实现符号隐藏，gcc默认的情况下是将所有符号都导出的，为了安全启见可以将符号隐藏，可以给破解带来很大的麻烦，另外还可以有效减小so文件的大小，还有一个好处是可以加快程序的运行速度。
隐藏符号基本有几种方式：一种是在函数定义]]></description><category></category></item><item><title><![CDATA[Git远程分支和refs文件详解]]></title><link>https://blog.csdn.net/beyond702/article/details/54406693</link><guid>https://blog.csdn.net/beyond702/article/details/54406693</guid><author>beyond702</author><pubDate>Fri, 13 Jan 2017 11:03:34 +0800</pubDate><description><![CDATA[原文地址：http://blog.csdn.net/forever_wind/article/details/37506389

最近同时同步博客到github和gitcafe上，遇到一些问题，我们分如下几个方面来分析一下：

推送远程分支到同一个服务器

比如首先建立git服务器，顺便clone出两个副本
mkdir server
cd server
git init --bare]]></description><category></category></item><item><title><![CDATA[Android SO 加壳(加密)与脱壳思路]]></title><link>https://blog.csdn.net/beyond702/article/details/53786662</link><guid>https://blog.csdn.net/beyond702/article/details/53786662</guid><author>beyond702</author><pubDate>Wed, 21 Dec 2016 16:25:07 +0800</pubDate><description><![CDATA[原帖地址：http://blog.csdn.net/jltxgcy/article/details/52205210




0x01 常见的Android SO加壳(加密)思路

    1.1 破坏Elf Header

    将Elf32_Ehdr 中的e_shoff, e_shnum, e_shstrndx, e_shentsize字段处理，变为无效值。由于在链接过程中]]></description><category></category></item><item><title><![CDATA[花指令文章]]></title><link>https://blog.csdn.net/beyond702/article/details/53746624</link><guid>https://blog.csdn.net/beyond702/article/details/53746624</guid><author>beyond702</author><pubDate>Mon, 19 Dec 2016 19:18:41 +0800</pubDate><description><![CDATA[http://blog.csdn.net/qincode/article/details/16116091
http://blog.csdn.net/yangbostar/article/details/6194133

http://www.cnblogs.com/hrhguanli/p/3843298.html

http://bbs.pediy.com/showthread.php]]></description><category></category></item><item><title><![CDATA[Android C语言_init函数和constructor属性及.init/.init_array节探索]]></title><link>https://blog.csdn.net/beyond702/article/details/53607212</link><guid>https://blog.csdn.net/beyond702/article/details/53607212</guid><author>beyond702</author><pubDate>Tue, 13 Dec 2016 11:42:51 +0800</pubDate><description><![CDATA[了解C语言的程序猿都知道有两种方法可以让一部分代码在so或可执行文件被加载的时候先于其它任何函数执行，一种是定义一个void _init(void)函数，另一种是在函数后面声明constructor属性。那么这两种方式在执行的时候有什么区别吗？先后顺序呢？了解ELF文件格式的人又会问它们在文件中的位置又有什么差别呢？这篇文章就来解答这些问题。
首先你需要了解一下ELF文件格式了，这里就不啰嗦了，]]></description><category></category></item><item><title><![CDATA[ELF文件分析中的重要工具]]></title><link>https://blog.csdn.net/beyond702/article/details/53540950</link><guid>https://blog.csdn.net/beyond702/article/details/53540950</guid><author>beyond702</author><pubDate>Fri, 09 Dec 2016 17:02:37 +0800</pubDate><description><![CDATA[1. file
用于查看文件的简单信息
BriansdeMacBook-Pro:armeabi-v7a brian$ file libcheckcert.so 
libcheckcert.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped]]></description><category></category></item><item><title><![CDATA[LeetCode 372. Super Pow解题思路(超详细)]]></title><link>https://blog.csdn.net/beyond702/article/details/53222077</link><guid>https://blog.csdn.net/beyond702/article/details/53222077</guid><author>beyond702</author><pubDate>Fri, 18 Nov 2016 19:57:31 +0800</pubDate><description><![CDATA[这道题实际上是考察快速幂，所谓的快速幂，实际上是快速幂取模的缩写，简单的说，就是快速的求一个幂式的模(余)。在程序设计过程中，经常要去求一些大数对于某个数的余数，为了得到更快、计算范围更大的算法，产生了快速幂取模算法。
我们先从简单的例子入手：求。

算法1.首先直接地来设计这个算法：
int ans = 1;
for(int i = 1;i<=b;i++)
{
   ans = ans]]></description><category></category></item><item><title><![CDATA[Android内核之运行自定义内核]]></title><link>https://blog.csdn.net/beyond702/article/details/53175154</link><guid>https://blog.csdn.net/beyond702/article/details/53175154</guid><author>beyond702</author><pubDate>Tue, 15 Nov 2016 19:10:42 +0800</pubDate><description><![CDATA[获取Android内核的途径有两种，一种是从设备中提取内核，可以看我另外一篇文章；另一种方式是从官网去下载内核源码，编译然后刷到手机里。这里我们讲第二种方式。]]></description><category></category></item><item><title><![CDATA[Mac下AOSP编译和刷机过程中的各种坑]]></title><link>https://blog.csdn.net/beyond702/article/details/53159284</link><guid>https://blog.csdn.net/beyond702/article/details/53159284</guid><author>beyond702</author><pubDate>Mon, 14 Nov 2016 15:34:47 +0800</pubDate><description><![CDATA[常见的几个坑我这里就不记录了，大家可以Google，这里就记录一个我搞了半天的坑，是有关JDK的。这里我使用的AOSP是Android4.4。
最开始我是使用jdk1.8版本编译，出现下面错误：
host Java: doclava (out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes)
external/docla]]></description><category></category></item></channel></rss>