且行且记

  • Home

  • Archives

  • About

Android升级OpenWrt固件

Posted on 2018-09-22 | In Android , OpenWrt

有这么一个需求,需要通过Android升级OpenWrt的固件(Firmware)。参考OpenWrt提供的升级方案,可以使用SSH的scp命令将固件上传到路由器的/tmp目录下,然后执行命令sysupgrade -v /tmp/firmware_name.bin升级固件。

Read more »

JSON解析之Gson

Posted on 2018-09-08 | In Java , Android , JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Gson是Google提供的开源库,可以将Java对象转换为JSON数据,也可以JSON数据转换为Java对象。本文简要介绍Gson库基本使用方法。

Read more »

Android中Java类加载耗时问题

Posted on 2018-09-01 | In Android

自己的练习项目Brush,是一个功能简单的绘制书写应用,在最后一个提交add simulate after launch之前,都存在一个问题,就是每次启动应用后,绘制第一条曲线的开始部分都是直线。原因是Android会根据应用的处理能力(UI线程的处理速度),控制MotionEvent的上报频率,也就是onTouchEvent的触发频率。如果在UI线程中处理了耗时任务,那么onTouchEvent的触发频率就会非常低,在这种情况下,只通过MotionEvent的getX和getY方法来获取坐标值,根据数量极少的坐标点绘制贝塞尔曲线,有时就会出现近似直线的情况。Brush绘制第一条曲线的开始部分都是直线的问题,可以肯定的是UI线程中做了耗时操作,而且只有第一次中才存在。经过各种尝试,最后确定了是Java类加载耗时造成的。

Read more »

Android中使用OpenSLES播放PCM音频

Posted on 2018-08-23 | Edited on 2018-09-01 | In Android , 音视频

本文主要介绍在Android中使用OpenSLES提供native接口播放PCM音频。已经有现成的java类AudioTrack可以使用,为什么要使用OpenSLES?有些时候需要在native层接收音频流,如果把音频流传到java层,再使用Android java API播放音频流,那么native层和java层之间传递数据需要花费一定的时间(虽然不是很大),既然native层有API就没有必要使用java层的API了。

那为什么不在java层接收音频流呢?网络连接与接收数据部分的代码用java实现就不方便移植到其他平台。

Read more »

Clang-Format简单配置

Posted on 2018-07-27 | Edited on 2018-09-01 | In C/C++ , 代码格式化

最近可是接触C/C++项目,在Linux上尝试了Vim、VSCode和QTCreator等工具进行开发,每个工具的默认代码格式化风格都不一样,如果团队成员使用的是不同的开发工具,那么代码的自动格式化必须要解决,幸好Clang-Foramt解决了这个难题。Clang-Format是一个代码格式化工具,可以配合Vim、QTCreator、VSCode和Xcode一起使用。接下来以Clang-Format最简单的配置开始。

Read more »

Linux音频采集

Posted on 2018-07-15 | Edited on 2018-09-01 | In Linux , 音频

声波通过气体、液体和固体等介质传播。麦克风内置碳膜受空气中声波的挤压产生振动,根据振动的频率和幅度产生相应的电信号(模拟电信号)。此时的模拟电信号还不能进行传输和存储,需要将其转换为数字信号(二进制bit位表示),模拟信号的数字化过程称为采样量化。采样量化后的数据称为PCM(Pulse Code Modulation)。如何进行采样量化呢?




Read more »

Linux Screen Capture

Posted on 2018-07-08 | Edited on 2018-09-01 | In Linux

Linux屏幕捕获最简单的方式就是使用FFmpeg,一些Linux上的开源录屏软件也是基于FFmpeg开发的,如vokoscreen。如果需要在Linux上实现录屏功能(单一屏幕捕获方式、单一编码格式),只需要使用FFmpeg中的一小部分功能,然而又不想把FFmpeg引到自己的项目中,那么可以参考FFmpeg实现自己的功能。第一、可以熟悉Linux屏幕的捕获方法;第二、如果出现bug(虽然FFmpeg出bug的可能性比较小),也便于自己调试和修复。本文主要介绍使用xcb实现Linux上的屏幕捕获功能。

Read more »

Xcode-LearnOpenGL-Templates

Posted on 2018-03-17 | Edited on 2018-09-01 | In OpenGL

最近通过LearnOpenGL教程学习OpenGL,里面有详细的例程帮助我快速了解OpenGL的编程思路。刚开始在教程的每一小节中,我都按照教程里面讲解的步骤一步一步的敲击着代码,但是当我熟悉之后,发现每创建一个Xcode项目,我必须每一次都要设置相同的编译选项和参数,并且需要写重复的GLFW代码。因此我写了一个OpenGL的Xcode的项目模板,利用这个模板,在每次创建OpenGL的Xcode项目时可以节省一些时间。

Read more »
12

Huntto

18 posts
16 categories
31 tags
© 2020 Huntto
Powered by Hexo v3.7.0
|
Theme — NexT.Pisces v6.3.0