
Android
文章平均质量分 72
大哥,请小心
实沉于海
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
android ---- 多渠道、多模块下自动化发布maven
多渠道、多模块下自动化发布maven原创 2022-10-26 18:17:46 · 2676 阅读 · 1 评论 -
手写android Log 源码(简单版)
实现android 源码中 log 的 socket通信功能原创 2022-10-15 16:36:17 · 520 阅读 · 0 评论 -
gcc4.9 编译stdatomic.h 异常
gcc 编译stdatomic.h头文件报错原创 2022-10-10 23:37:30 · 3071 阅读 · 1 评论 -
android 消除字体上下间距
android 字体上下不要间距(留白)原创 2022-08-08 16:11:47 · 2689 阅读 · 0 评论 -
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 · 1018 阅读 · 0 评论 -
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 · 679 阅读 · 0 评论 -
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 · 314 阅读 · 0 评论 -
Android 10增加硬件抽象层(HAL)模块访问Linux内核驱动程序
error: use of GNU old-style field designator extension [-Werror,-Wgnu-designator]原创 2022-04-20 21:32:18 · 2270 阅读 · 0 评论 -
在Ubuntu上为Android 10 系统内置C可执行程序测试Linux内核驱动程序
编译环境: - android 版本 - android-10.0.0_r41 - 架构 - aosp_x86_64-eng - 内核分支:android-goldfish-4.14-gchips参考教材: 罗升阳:https://blog.youkuaiyun.com/luoshengyang/article/details/6571210 依赖前文:https://blog.youkuaiyun.com/silently_frog/article/details/124184244目的记录原创 2022-04-18 22:51:25 · 2162 阅读 · 0 评论 -
在Ubuntu上为Android 10 系统编写Linux内核驱动程序
编写环境: - android 版本 - android-10.0.0_r41 - 架构 - aosp_x86_64-eng - 内核分支:android-goldfish-4.14-gchips参考资源 罗升阳:https://blog.youkuaiyun.com/luoshengyang/article/details/6568411目的这篇博客的主要目的是补充罗升阳博客中我认为不够详细的地方和修改部分由于代码过时导致的编译错误。补充不够详细的地方内核源码下载参考:htt原创 2022-04-14 23:26:49 · 465 阅读 · 0 评论 -
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 · 4503 阅读 · 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 · 1342 阅读 · 0 评论 -
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 · 552 阅读 · 2 评论 -
Android ----------- LayoutInflater的由来
如果我们的 MainActivity 继承的是 AppCompatActivity,则在onCreate()中 设置LayoutInflater#Factory2activity.onCreate() ------->AppCompatActivity.onCreate()------> AppCompatDelegateImpl.installViewFactory() ----------LayoutInflater.setFactory2()而设置的Factory...原创 2021-03-24 18:19:21 · 173 阅读 · 0 评论 -
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 · 181 阅读 · 0 评论 -
设计模式 ------- 仿写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 · 331 阅读 · 0 评论 -
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 · 838 阅读 · 0 评论 -
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 · 802 阅读 · 0 评论 -
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 · 608 阅读 · 0 评论 -
Android------- IjkPlayer 源码学习目录
在看了雷霄华的VideoEye后,发现其视图层使用的是SDL在windows上展示的。但是本人是搞Android App开发的,读其源码时,总是感觉有点不对劲。最后在找到了bilibili 为移动端封装ffmpeg的框架------ijkplayer。Android----ijkplayer的学习目录: ijkplayer 的配置 ijkplayer 配置时,遇到的问题(二)...原创 2020-10-06 16:15:28 · 2219 阅读 · 1 评论 -
Android --- IjkPlayer 的核心:音视频同步原理(十)
音视频同步原理原创 2020-10-05 20:50:02 · 2152 阅读 · 1 评论 -
Android --- IjkPlayer 阅读native层源码之解码成功后的音频数据如何发送回Android播放(九)
步骤4: audio_open 这里欠一篇。原创 2020-10-04 18:46:04 · 1543 阅读 · 7 评论 -
Android --- IjkPlayer 阅读native层源码之将AvPacket解码为一帧视频(八)补充
本篇会有很多源代码,请注意阅读每行代码上面的注释。本来是不准备写解码帧的,因为前面写了一篇关于解码一帧音频的博客。但是后面发现:虽然音视频(包括字幕)解码流程一样,但是它们解码后还会对帧有一些处理。而对于视频帧来说,这些处理还是很重要的。所以本篇主要目的介绍解码对视频帧的处理。如果还不知道解码的流程请看:Android --- IjkPlayer 阅读native层源码之如何将AvPacket数据解码出一帧数据(六)将视频的AvPacket数据解码为AvFrame的线程为ff_ffplay.c.原创 2020-10-02 16:52:18 · 1564 阅读 · 0 评论 -
Android --- IjkPlayer 阅读native层源码之如何刷新视频的播放界面(七)
video_refresh_thread原创 2020-09-26 19:50:15 · 1645 阅读 · 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 · 1445 阅读 · 0 评论 -
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 · 1949 阅读 · 0 评论 -
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 · 2265 阅读 · 0 评论 -
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 · 774 阅读 · 0 评论 -
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 · 1265 阅读 · 0 评论 -
Android ----- ijkplayer源码阅读Java层(二)
xxx原创 2020-09-12 16:20:02 · 803 阅读 · 0 评论 -
Android-----将 Ijkplayer 集成到Android Studio中(一)
1. 首先去ijkplayer官网将源码克隆下来原创 2020-09-05 22:53:35 · 3419 阅读 · 0 评论 -
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 · 1626 阅读 · 0 评论 -
Glide-----拍照或者相册裁剪的圆形图片不显示或者刷新后才能显示
简单叙述下----踩坑场景: 用户中心界面(假设为A界面):需要Glide加载一张服务端的圆形头像照,照片通过拍照或者本地相册裁剪后,上传到服务器。现在我拍了一张照片,将其上传到服务器后,如果上次成功,就直接将setImageBitmap这张图片到头像照上。但是你会发现图片不显示或者刷新后才能显示。原因: 当A界面(Activity或者Fragment)去相册或者拍照,然后拿到照片返回A界面这个过程,A界面生命周期会经历以下变化: onStop->onS...原创 2020-06-17 15:30:58 · 478 阅读 · 0 评论 -
Android------记录含有React-Native的项目打包成APK的注意事项
由于React-Native里的代码有更改,所以需要重新打包。在开发的时候,npm start 启动了服务,确定了内容已经更改。于是就直接打包APK,然后发现React-Native代码并没有更改。 突然想起了是因为在开发时启动的服务会去监听模拟器的端口,如果Android端对React-Native服务端有请求,直接由服务端发送一个热更新包,所以是最新的更改的React-...原创 2019-12-29 18:55:37 · 274 阅读 · 1 评论 -
Android------CMakeLists.txt中的一些常规使用
这篇记录CMakeLists.txt中的一些常规CMake使用预知识:# CMAKE_SOURCE_DIR: 当前cmakelists.txt的路径 # ANDROID_ABI : 获取build.gradle中设置的cpu架构名称# Android支持的cpu架构armeabi、armeabi-v7a(目前大部分机器)、arm64-v8a (高端机型)、x86、x86_64...原创 2019-11-16 13:45:16 · 1555 阅读 · 1 评论 -
Android----布局优化
布局优化的注意以下几点: 绘制过度 1. 不要随意的使用 android:background=""。 a. 一般展位图会设置一个占位的空白,往往会设置一个背景色。如果有图片时,记得将其背景色置空。 b. 去掉主题中的,<item name="android:windowBackground">@null<...原创 2019-11-07 17:35:04 · 213 阅读 · 0 评论 -
Android----启动优化
启动优化的处理的时间应该在Application的onCreate开始到第一个Activity的onCreate 当App刚被启动时,大概会做两个耗时的事件,第一、App在系统中的初始化(eg,注册进程,开启服务)第二、App自己的数据请求、资源加载等即Application.onCreate到Activity.onCreate的时间。而第一个耗时是系统消耗,我们没法优化,所以只能优化第...原创 2019-11-05 11:18:44 · 507 阅读 · 0 评论 -
Android-----AIDL创建注意事项
客户端(发送端)、服务端(接收、处理、回复端)要求一:两端的对象的方法和所在的包名称必须一样。客户端:服务端:要求二:两端的.aidl文件与.java所在报名必须一样。解释:如上面服务端图片Person.java的包名必须和IMyAidlInterface.aidl、Person.aidl的包名相同。否则回报如下错误:最后提一下其生成的文件在a...原创 2019-10-30 18:17:39 · 225 阅读 · 0 评论 -
重写Android ----ViewGroup
ViewGroup上文提到了如何重写View与认识 点击打开链接 现在来重写ViewGroup,我看过许多网上重写的ViewGroup大多都是用ViewPager等来填充ViewGroup的,我这用下动态创建的方式填充。实验结果:1.准备:xml version="1.0" encoding="utf-8"?>xmlns:android="htt原创 2018-01-19 17:33:06 · 315 阅读 · 0 评论 -
Android图片的压缩
图片的压缩相关知识点:http://blog.youkuaiyun.com/yezhouyong/article/details/50402022 http://blog.youkuaiyun.com/jdsjlzx/article/details/44228935 http://www.cnblogs.com/mmy0925/archive/2013/01原创 2018-01-16 17:38:23 · 176 阅读 · 0 评论