自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 问答 (1)
  • 收藏
  • 关注

原创 编译安装适用于树梅派4B的android系统

n:创建新的四个分区(/root /system /vendor /data),都是primary分区类型,设置分区大小时输入需要的MB。一般来说需要通过storage.googleapis.com 下载,但是由于网络限制的原因,采用通过清华源镜像来下载。4. 下载android 12 源码,增加树梅派相关代码配置 可参考。t:改变分区的类型(W95 FAT32 (LBA),Linux)2.将SD分区(最好用命令行分区,试过用Gparted不行)4.复制固件到boot分区 (直接复制不需要命令行)

2023-11-20 22:29:03 1134 2

原创 android 配合scrollview 解决键盘遮挡EditText的问题

  1.BaseActivity.javapackage com.ange.keyboardhidedemo;import android.app.Activity;import android.os.Bundle;import android.support.annotation.Nullable;import android.util.Log;import and...

2018-07-13 18:37:23 6402

原创 树莓派4B android系统,Led三色灯驱动添加

在内核源码根目录,我的源码目录为kernel,在kernel/common/drivers/char下添加LedDriver目录,并在LedDriver目录下添加文件Kconfig,led_drv.c,Makefile。连接方式参考下图,red 脚连GPIO17,green 脚连GPIO 18,blue 脚连GPIO19,GND脚连任意的GND。对照图片的引脚进行连接。做完这一步,可以通过以下步骤验证led是否能点亮,以下可以点亮红灯。一、去淘宝买一个led 三色灯配件,三色灯连接GPIO 接口。

2024-03-16 11:59:22 250 1

原创 AOSP10 替换系统launcher

aosp10 替换launcher

2024-02-21 16:28:07 851

原创 git 使用命令

从某个时间开始提取。

2023-10-18 16:41:23 79

原创 rxjava 错误重试例子

当observable 需要失败重试时可以使用retryWhen,如网络请求失败重试

2023-01-15 10:00:58 386

原创 rxjava 任务在activity 和fragment destroy时自动解除

rxjava 任务在activity 和fragment destroy时自动解除,防止内存泄漏

2022-11-07 15:37:07 655

原创 apk如何使用腾讯加固

apk如何使用腾讯加固

2022-10-14 15:23:23 1320

原创 android 如何往httpd文件服务器上传文件

android 如何往httpd文件服务器上传文件

2022-09-15 15:37:11 534

原创 Android 原生 CalendarView 修改样式

Android 原生 CalendarView 修改样式

2022-08-30 20:45:04 1430 1

原创 WorkManager 简单使用

1.在AndroidManifest.xml 添加<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:directBootAware="false" android:exported="false"

2021-12-23 14:34:03 1840

原创 在GSYVideoPlayer中实现VLC 内核

GSYVideoPlayer 是一个比较火的开源框架。其支持Android 系统中的MediaPlayer内核,ExoPlayer 内核, ijkPlayer 内核。 在我使用的过程中发现不支持h265格式的avi 文件播放,所以我实现了一个VLC内核。import android.content.Context;import android.net.Uri;import android.os.Handler;import android.view.Surface;import android

2021-12-17 18:19:37 2492

原创 ubuntu 上编译安装ffmpeg的脚本

install-ffmpeg.shsudo apt-get install build-essential git-core checkinstall yasm texi2html libvorbis-dev libx11-dev libvpx-dev libxfixes-dev zlib1g-dev pkg-config netcat libncurses5-devFFMPEG_VERSION=4.1.4cd /usr/local/srcif [ ! -d "/usr/local

2021-11-14 18:42:58 105

原创 ubuntu编译ijkplayer-android

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).export PKG_CONFIG=/usr/bin/pkg-configexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfigexport PATH=/usr/local/ffmpeg/.

2021-11-13 15:21:18 2265

原创 ubuntu ffmpeg 录制系统音频

1.安装 kmodsudo apt-get install kmod2.sudo modprobe snd-aloop3.ffmpeg -f alsa -i hw:Loopback,1,0 rec.wav参考:Linux上用ALSA aloop driver实现录制其他程序播放的声音_lsheevyfg的专栏-CSDN博客没有用ffmpeg-alsa环回录制音频_三行代码http://ask.sov5.cn/q/2UI7VnFUpG...

2021-10-30 21:24:35 1410

原创 android 开发工具下载网站

这个我用过比较好的android开发工具下载网站,支持下载android stduio ,ndk ,sdk。

2021-10-19 14:32:20 6899

原创 nodejs 创建http服务

101.34.125.2101.34sud.125.244sudsudo apt install nodejs //安装nodejssudo apt install npm //安装npmnpm config set registry http://registry.npm.taobao.org //修改镜像sudo npm install -g [email protected] //升级npm

2021-08-20 10:41:11 122

原创 安装forever失败(Missing required argument #1)解决方案

原版本信息:nodejs:8.10.0 npm :3.5.2解决方案:sudo npm install -g [email protected] //升级npmsudo npm install forever -g

2021-08-20 10:30:06 1265

原创 SVN E170013, E230001

svn出现以下错误:svn: E170013: Unable to connect to a repository at URL 'https://xxxxxx'svn: E230001: Server SSL certificate verification failed: certificate has expired, certificate issued for a different hostname, issuer is not trusted解决办法:点击clear...

2021-07-19 16:26:29 1203

原创 android监听键盘弹出

public class GlobalLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener { private final Rect mVisibleViewArea; private final int mMinKeyboardHeightDetected; private int mKeyboardHeight = 0; /** * Activity的根布局(Activity#s.

2021-07-14 18:25:41 122 1

原创 android使用theme修改状z态栏文字颜色(黑白切换)

<style name="editTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/white</item> <item name="colorPrimaryDark">@color/white</item> <item name="colorAccent">@col...

2021-05-19 17:26:07 453

原创 密码中至少包含一个特殊字符,数字,字母,的8-16位密码的正则表达式

private boolean isAvailablePassword(String password) { return password.matches( "^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[~!@#$%^&*()_+|<>,.?/\\\\:;'\\[\\]{}\"]).{8,16}$"); }

2021-05-08 16:37:48 1562

原创 Rxjava简单原理说明

Rxjava 本质上是 观察者模式框架。被观察者(Observable)->传递数据-> 观察者(observer)在调用subscribe ()方法进行订阅时,会把observer 层层往上构造出新的observer。例如:Observable.create().map().subscribe(observer) ,observer会先被new MapObserver(observer),用MapObserver接收事件源,再传递到原始的observer。...

2021-03-09 00:06:05 329

原创 activity window对象创建过程及其作用

activity里持有成员变量mWidow,在attach里初始化,并设置windowManageractivity的attach方法在ActivityThread 的performLaunchActivity方法里被调用activity被创建后,activity的attach方法被调用Window.java 里面有几个重要的成员变量,mAppTo...

2020-12-23 00:33:39 836 1

原创 Android activity 的taskAffinity属性

1.默认情况下一个activity的taskAffinity的值为app包名2.在app中设置一个activity 的taskAffinity为非包名+launchMode为singleTask 或者 singleInstance,可以使activity在新的task启动。3.在app中设置一个activity 的taskAffinity为非包名+launchMode为standard,不可以使activity在新的task启动。单纯使用 taskAffinity 不能导致 Activity 被

2020-10-22 23:45:05 403

原创 java 偏向锁 轻量级锁 重量级锁

前言:java的线程是映射到操作系统的原生线程上的,如果要阻塞和唤醒线程,需要操作系统帮忙,要从用户态转为核心态,需要花费很多处理器时间。

2020-10-22 23:01:31 88

原创 Synchronized 和 ReentrantLock的区别

1.Synchronized 可以作用于代码块,静态方法 ,实例方法。作用于代码块时锁为Synchronized 括号里的对象,作用于静态方法时,锁为当前类的class 对象。作用于实例方法时,锁为对象实例。Synchronized 的使用比ReentrantLock简单,加锁和释放锁的操作都是由虚拟机完成的。2.ReentrantLock的加锁和解锁操作都需要手动完成。...

2020-10-20 23:09:11 189

原创 android cmake方式引入camera2ndk报错: NOTFOUND

我是这样引入的:find_library(camera2ndk-lib camera2ndk)target_link_libraries(native-lib ${log-lib} ${android-lib} ${camera2ndk-lib} avutil swresample avcodec avdevice avfilter avformat swscale)然后编译时出现:D:\github\FFmpeg\ffmpeg\CMakeLists.txt : C/C++ debug|

2020-09-19 18:09:06 805

原创 ffmpeg 代码实现从视频中1秒截一张图

背景:我这个代码是在我的Android demo 里截取出来的,项目里是实现了从相册里选择一个视频,然后每秒生成一张截图;当然这个代码在非android 项目也是可以使用的。头文件:decode_video_to_img.h#ifndef DEMO_DECODE_VIDEO_TO_IMG_H#define DEMO_DECODE_VIDEO_TO_IMG_Hint createImg(char* inputFileName, char * outputFileName);#endif /

2020-06-16 20:52:55 1895 2

原创 不使用retrofit 情况下用Kotlin 的deferred 封装请求框架?

前言:旧项目没有使用retrofit,但是我又想让自己封装的请求框架支持Kotlin 的deferred ,于是参考了com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory,写出了以下的代码,自测可以使用。override fun <T> excuteOnDef...

2020-02-10 12:58:50 1848 2

原创 Kotlin 类委托(by) 解构HttpUtil

在android 开发中,我们都会用到Http请求框架有很多,偶尔会更新框架,如从volley替换成okhttp,如果没有做好封装,替换的时候需要修改很多地方。下面提供一个封装的思路,做一个httpUtil,当需要替换请求框架,我们只需要重写RequestImpl,而不需要修改很多地方。1.准备一个接口类public interface IRequest { <T&gt...

2020-02-07 13:12:38 2422 1

原创 android 动画为什么可以在超出view 的范围显示?

前言:我有个同事问我为什么view 执行补间动画时可以超出自身范围绘制,如scaleAniamtion 放大整个view,但实际上view 的width,height都没有发生改变,为什么可以超出自身范围绘制呢? 最后我研究了一下,得出这张图,有说得不对的地方请指正:补间动画图解​​​​​​...

2020-01-12 11:09:45 959

原创 linux 下静态库的编译与使用

介绍: gcc -g -O2 -o xxx xxx.c -I 文件路径 -L 文件路径 -l 库名-g :输出文件的调试信息-O :对输出文件做指令优化-I :指定头文件位置-L:指定库文件位置-l:指定使用哪个库步骤:1)创建文件:add.h ,add.c , main.cadd.hint add(int a,int b);add.cint ...

2019-07-11 22:50:52 688

原创 使用NestedWebView 实现WebView 顶部加原生内容嵌套滑动

1.要实现这个WebView 顶部加原生内容嵌套滑动,想到嵌套滑动比较好的解决方案就是"NestedScrollingChild2"和"NestedScrollingParent2"2.我这里的方案是CoordinatorLayout+AppBarLayout+NestedWebView3.布局如下:activity_nest.xml<?xml version="1.0"...

2019-06-30 15:52:13 2345 2

原创 java 多线程——wait() ,sleep()

对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池...

2019-02-15 14:43:00 165

原创 java 多线程—yield()

package com.ange.demo.thread;public class ThreadTestYield { static Thread t1,t2=null; public static void main(String[] args){ System.out.print("hello"); t1=new Thread(new ...

2019-02-15 11:25:06 879

原创 java 多线程—join()

package com.ange.demo.thread;public class ThreadTest { static Thread t1,t2=null; public static void main(String[] args){ System.out.print("hello"); t1=new Thread(new Runna...

2019-02-15 10:39:47 114

原创 在unbuntu上编译安装ffmpeg

脚本:install-ffmpeg.shsudo apt-get install build-essential git-core checkinstall yasm texi2html libvorbis-dev libx11-dev libvpx-dev libxfixes-dev zlib1g-dev pkg-config netcat libncurses5-devFFMP...

2019-01-06 23:27:42 384

原创 HashMap与LinkedHashMap

HashMap 是无序的,线程不安全,数据结构是数组+链表,由key的hashCode 算出的hash值,决定把Map.Entry 存储到数组的哪一个index 里,数组存储的是链表的头,相同hash值,数据加在链表里;LinkedHashMap 是HashMap的子类,线程不安全,数据结构是数组+单链表+双链表,有使Lru算法,先进先出,访问一个值,会把这个值放到双向链的最后。publ...

2019-01-04 11:58:55 135

原创 gradle依赖子project的指定flavor

gradle依赖子project的指定flavorgradle 2.+gradle 3.+ 不需要指定configurationgradle 2.+##主模块dependencies {debugCompile(project(path: “:im”, configuration: “debug”))releaseCompile(project(path: “:im”, configur...

2018-12-26 10:58:14 2920 2

树梅派4B-android12-刷机资源

自己编译的基于树梅派4B的android12系统,可以参考文章里的步骤进行刷机https://blog.csdn.net/ange_li/article/details/134518596

2023-11-26

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

TA关注的人

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