自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

silently_frog的博客

请多多关照

  • 博客(86)
  • 收藏
  • 关注

原创 android ---- 多渠道、多模块下自动化发布maven

多渠道、多模块下自动化发布maven

2022-10-26 18:17:46 2350 1

原创 手写android Log 源码(简单版)

实现android 源码中 log 的 socket通信功能

2022-10-15 16:36:17 473

原创 gcc4.9 编译stdatomic.h 异常

gcc 编译stdatomic.h头文件报错

2022-10-10 23:37:30 2690 1

原创 android 消除字体上下间距

android 字体上下不要间距(留白)

2022-08-08 16:11:47 2356

原创 shell 的基本用法

shell 学习记录

2022-07-23 19:04:54 246

原创 linux 学习使用gdb

学习使用linux自带的gdb调试工具

2022-07-03 23:38:25 624

原创 Android10 硬件抽象层(HAL)概要介绍和学习计划

写本篇文章目的:参考了罗升阳的《Android硬件抽象层(HAL)概要介绍和学习计划》, 发现老罗的博客内容是很久以前写的。直接运行会有些代码api过时,且android版本太低不太适合我门现在的学习。所以想写了本篇文章,本篇文章代码都会直接复制老罗博客的,并按照他的博客内容格式修改相关过时内容。编译环境: - android 版本 - android-10.0.0_r41 - 架构 - aosp_x86_64-eng - 内核分支:android-goldfish-4.14-gchi

2022-05-12 23:20:04 939

原创 android10 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务

修改…/frameworks/base目录下的Android.bp然后执行 mmm ./frameworks/base/core/java/android/os/ 注意:千万别执行mmm ./frameworks/base,这个命令会将base中的所有文件都编译一遍,会导致一些多余Apk,导致。。。 在/frameworks/base/services/ core /java/com/android/server目录下新建HelloService.java文件 (添加了一些日志)package co

2022-05-12 23:17:37 639

原创 android10 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口

#define LOG_TAG "HelloService"#include <nativehelper/JNIHelp.h>#include "jni.h"#include <utils/Log.h>#include <utils/misc.h>#include <utils/String8.h>#include <dirent.h>#include <fcntl.h>#include <stdio.h>

2022-05-12 23:05:37 272

原创 Android 10增加硬件抽象层(HAL)模块访问Linux内核驱动程序

error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]

2022-04-20 21:32:18 2201

原创 在Ubuntu上为Android 10 系统内置C可执行程序测试Linux内核驱动程序

编译环境: - android 版本 - android-10.0.0_r41 - 架构 - aosp_x86_64-eng - 内核分支:android-goldfish-4.14-gchips参考教材: 罗升阳:https://blog.csdn.net/luoshengyang/article/details/6571210 依赖前文:https://blog.csdn.net/silently_frog/article/details/124184244目的记录

2022-04-18 22:51:25 2119

原创 在Ubuntu上为Android 10 系统编写Linux内核驱动程序

编写环境: - android 版本 - android-10.0.0_r41 - 架构 - aosp_x86_64-eng - 内核分支:android-goldfish-4.14-gchips参考资源 罗升阳:https://blog.csdn.net/luoshengyang/article/details/6568411目的这篇博客的主要目的是补充罗升阳博客中我认为不够详细的地方和修改部分由于代码过时导致的编译错误。补充不够详细的地方内核源码下载参考:htt

2022-04-14 23:26:49 422

原创 android ----- goldfish内核编译

error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-develsudo apt-get install libelf-devfatal error: openssl/bio.h: No such file or directory21 | #include <openssl/bio.h>su.

2022-04-12 21:16:06 4165 2

原创 android10 源码编译异常记录

android源码编译异常编译环境:ubuntu20.04android11emulator x861. 启动模拟器后,进入模拟器桌面闪退,并报错:android emulator Segmentation fault (core dumped)解决方法: 1. 更新ubuntu 驱动 android emulator Segmentation fault (core dumped) 2. 编译目录下的/out/target/product/generic_x86/con

2022-04-06 23:58:16 1262

原创 Android S 适配问题 “Installed Build Tools revision 31.0.0 is corrupted ”

主要原因是 SDK 31 缺少了两个文件:dx.bat 和 dx.jar解决方法:在sdk\build-tools\31.0.0目录下找到d8.bat,将其名字改为dx.bat.在sdk\build-tools\31.0.0\lib目录下找到d8.jar,将其名字改为dx.jar

2021-08-06 10:53:45 505 2

原创 Android ----------- LayoutInflater的由来

如果我们的 MainActivity 继承的是 AppCompatActivity,则在onCreate()中 设置LayoutInflater#Factory2activity.onCreate() ------->AppCompatActivity.onCreate()------> AppCompatDelegateImpl.installViewFactory() ----------LayoutInflater.setFactory2()而设置的Factory...

2021-03-24 18:19:21 141

原创 Android ---------- ANR

导致Anr 可能的原因:输入事件(按键和触摸事件)5s内没被处理: Input event dispatching timed out BroadcastReceiver的事件(onRecieve方法)在规定时间内没处理完(前台广播为10s,后台广播为60s):Timeout of broadcast BroadcastRecord 07-27 19:18:47.448 1707 1766 W BroadcastQueue: Receiver during timeout: ResolveInfo{

2021-03-20 22:10:47 151

原创 iOS ----------- 记录Xcode打AdHoc证书的测试ipa包

就是使用AdHoc 证书打包

2020-12-18 15:25:45 764

原创 设计模式 ------- 仿写Android RxJava 中的装饰器模式

仿写RxJava中的装饰器模式:整个例子的背景:用户选择商品、下单、店家发货、快递、拿到商品。交易类:Deliverypublic abstract class Delivery { public abstract void transport(Product product); public void arrive(Product product){ transport(product); } // 创建订单与收获地址 publ

2020-12-01 18:11:48 289

原创 android -------- 使用 Retrofit2 问题集锦

遇见的问题:1. 访问报404a. 可能一:baseUrl中的字符串没有以“/”结尾b. 可能二:在使用了注解@Path时,其值中存在/会被编译为乱码。举个例子: baseUrl= "https://www.baidu.com/" @FormUrlEncoded @POST("{bus}") Call<PersonInfoResponse> getUserInfo(@Path("bus") String bus, .

2020-11-26 15:01:52 777

原创 android ------- MVVM+ databing + lifecycle 错误集锦

1.Caused by: java.lang.RuntimeException: view tag isn't correct on view:null导致这个错误的原因是:模块之间的layout资源冲突了. 以我的项目为例子:我在Mvvm 模块中使用了DataBindingUtil.setContentView(this,R.layout.activity_main); 而 app模块中也有一个activity_main;在运行后,会合并多个库项目,导致Mvvm 模块中的activity_m

2020-11-20 18:37:14 709

原创 Android ---------- 疑难杂症

ERROR: Unable to find method 'org.gradle.api.tasks.compile.CompileOptions.setBootClasspath(Ljava/lang/String;)V'.Possible causes for this unexpected error include:Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection.

2020-11-13 09:52:40 545

原创 Android------- IjkPlayer 源码学习目录

在看了雷霄华的VideoEye后,发现其视图层使用的是SDL在windows上展示的。但是本人是搞Android App开发的,读其源码时,总是感觉有点不对劲。最后在找到了bilibili 为移动端封装ffmpeg的框架------ijkplayer。Android----ijkplayer的学习目录: ijkplayer 的配置 ijkplayer 配置时,遇到的问题(二)...

2020-10-06 16:15:28 2052 1

原创 Android --- IjkPlayer 的核心:音视频同步原理(十)

音视频同步原理

2020-10-05 20:50:02 1964 1

原创 Android --- IjkPlayer 阅读native层源码之解码成功后的音频数据如何发送回Android播放(九)

步骤4: audio_open 这里欠一篇。

2020-10-04 18:46:04 1385 7

原创 Android --- IjkPlayer 阅读native层源码之将AvPacket解码为一帧视频(八)补充

本篇会有很多源代码,请注意阅读每行代码上面的注释。本来是不准备写解码帧的,因为前面写了一篇关于解码一帧音频的博客。但是后面发现:虽然音视频(包括字幕)解码流程一样,但是它们解码后还会对帧有一些处理。而对于视频帧来说,这些处理还是很重要的。所以本篇主要目的介绍解码对视频帧的处理。如果还不知道解码的流程请看:Android --- IjkPlayer 阅读native层源码之如何将AvPacket数据解码出一帧数据(六)将视频的AvPacket数据解码为AvFrame的线程为ff_ffplay.c.

2020-10-02 16:52:18 1463

原创 Android --- IjkPlayer 阅读native层源码之如何刷新视频的播放界面(七)

video_refresh_thread

2020-09-26 19:50:15 1529 6

原创 Android --- IjkPlayer 阅读native层源码之如何将AvPacket数据解码出一帧数据(六)

audio_thread:static int audio_thread(void *arg){ //循环 do { // 将音频队列的存储个数、大小、和音频能播放多长时间这些信息存入 // FFPlayer.stat.audio_cache ffp_audio_statistic_l(ffp); // 注意: // 将缓存队列中一个AVPacket数据解码为Frame数据,解码出来的最新一帧存放

2020-09-23 11:08:36 1349

原创 Android ---- Ijkplayer阅读native层源码之IjkMediaPlayer_prepareAsync(五)

IjkMediaPlayer_prepareAsync的作用为播放器播放前做准备。其被Java层的IjkMediaPlayer.prepareAsync调用。IjkMediaPlayer_prepareAsync:static int ijkmp_prepare_async_l(IjkMediaPlayer *mp){ 省略。。。。 // 1.向消息链表发送一个FFP_MSG_PLAYBACK_STATE_CHANGED消息,改变IjkMediaPlayer的状态为MP_.

2020-09-22 15:28:24 1819

原创 Android --- IjkPlayer提供的播放器设置表

一个完整的播放器,少不了会有很多的默认设置或者提供给用户设置的选项。而IjkPlayer 同样也用。从Java层设置IjkPlayer播放器选项的流程请看这篇文章:https://www.jianshu.com/p/ab405e5bc1de。本篇记录上面博客中ff_ffplay_options.ffp_context_options中没解释的一些选项: { "max-buffer-size", "max buffer size should be.

2020-09-20 22:26:15 2022

原创 Android --- Ijkplayer源码阅读native层之自定义消息处理机制(四)

这篇主要介绍Ijkplayer 在native 自定义的消息处理机制,其原理于Android的handler相识。native层的消息处理机制本命为message_loop,其启动在ijkplayer_jni->IjkMediaPlayer_native_setup中message_loop:message_loop_n:注意这里有一个死循环,不停的去队列中取消息。这里预留一个空间A: post_event方法ijkmp_get_msg:获取一个消息这里第二

2020-09-13 17:57:23 713

原创 Android ----Ijkplayer源码阅读native层之动态库的加载和初始化(三)

在Android ----- ijkplayer源码阅读Java层(二)中欠了一篇细说加载Ijkplayer动态库时到底干了写啥???那我们就来聊聊。VideoActivity.onCreate中调用native_profileBegin这个是加载----性能分析工具android-ndk-profiler的动态库。这方面没用过,不说。loadLibrariesOnce:加载三个动态库ffmpeg:音视频编解码的核心库ijksdl:在native层创建一些java类对象,并存

2020-09-13 11:30:34 1164

原创 Android ----- ijkplayer源码阅读Java层(二)

xxx

2020-09-12 16:20:02 748

原创 Android-----将 Ijkplayer 集成到Android Studio中(一)

1. 首先去ijkplayer官网将源码克隆下来

2020-09-05 22:53:35 2978

原创 React Native 0.44.3 ----------微信h5支付

本篇记录ios使用ReactNative完成微信h5支付的一些注意事项。 a. 支付完成或者取消微信h5支付,会跳转到手机默认的浏览器中(safari),无法回到原App. b. 如何获得支付状态???1. 微信sdk与微信h5支付链接的不同微信sdk:{"package":"Sign=WXPay","appid":"wx41647c3ca4a4c6de","sign":"735D651D1BA5733EC12AC2B9218CC6DA","prepayid":"wx1...

2020-08-31 11:19:28 1739

原创 Android-------配置IjkPlayer遇到的问题集锦

1.ijkplayer-android/android/ijkplayer/ijkplayer-x86/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:2589: error: undefined reference to 'ijk_soundtouch_translate'解决:修改文件:ijkplayer/ijkmedia/ijkplayer/Android.mk#LOCAL_SHARED_LIBRARIES := ijkffmpeg ij.

2020-06-20 20:52:38 1526

原创 Glide-----拍照或者相册裁剪的圆形图片不显示或者刷新后才能显示

简单叙述下----踩坑场景: 用户中心界面(假设为A界面):需要Glide加载一张服务端的圆形头像照,照片通过拍照或者本地相册裁剪后,上传到服务器。现在我拍了一张照片,将其上传到服务器后,如果上次成功,就直接将setImageBitmap这张图片到头像照上。但是你会发现图片不显示或者刷新后才能显示。原因: 当A界面(Activity或者Fragment)去相册或者拍照,然后拿到照片返回A界面这个过程,A界面生命周期会经历以下变化: onStop->onS...

2020-06-17 15:30:58 432

原创 音视频-----------在字节数据中提取ACC的profile、采样率和长度

参考博客: AAC音频码流解析每个ADTS frame之间通过0xFFF(二进制“111111111111”)分割。上图为ACC数据:蓝框为需要分析数据 1. 红框为分割符-----0xFFF 2. 紧跟着的50是一个16进制的表示-------0x50,其二进制位1010000,通过下面的计算取得ACC的profile// 0xC0------11000000// 假如, aacframe[2]=0x50;// 取前两位,eg 01010000 &am...

2020-05-24 21:48:58 730

原创 音视频-----------h264入门(如何获得NALU中参数的值)

typedef struct{ int startcodeprefix_len; //! 4 for parameter sets and first slice in picture, 3 for everything else (suggested) unsigned len; //! Length of the NAL unit (Excluding the start code, which does not belong to the NALU).

2020-05-23 18:51:36 710

原创 c---------菜鸟眼中的fopen

本篇为一个菜鸟记录使用fopen的一个笑话。代码如下:FILE *h264bitstream = fopen(url, "rb+");printf("文件指针:%p\n", h264bitstream);//断点处......fread (Buf, 1, 4, h264bitstream)printf("缓存指针:%p\n", Buf);上面代码打断点,调试运行。然后拿着h264bitstream指向的地址,去内存1查看该地址存储的值。buf的内存存储的值:而

2020-05-20 09:52:16 259

空空如也

空空如也

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

TA关注的人

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