![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
决胜万里
你好
展开
-
音视频开发(一)
回声消除的开源算法:webrtc aec aecm aec3会将近端说话的声音也消除掉speex aec会保留百分之50- 但是回音不能完全消除声音的三a算法的零外两a需要使用回音效果中:平均值的方法一般般Newlc会出现噪音mp4一般不用多音轨的方法自适应的方法还行吧固定帧率是定时器用gles来绘制的实际上h264的帧率是由输入端来决定 而不是自己设置的那玩意视频修复:开源的那个库使用起来还不错音录制时视频同步:音频靠齐声音畸变纠正:纠正的两个方法:如何在gles中使用.原创 2022-05-22 18:40:49 · 436 阅读 · 0 评论 -
安卓面试题大全2022最新安卓面试题详细
http://111.229.8.130/网站地址原创 2022-02-26 20:25:26 · 1898 阅读 · 0 评论 -
安装虚拟机后安装docker再安装Jenkins
1安装虚拟机后2安装docker:https://shumeipai.nxez.com/2019/05/20/how-to-install-docker-on-your-raspberry-pi.html3再安装Jenkinshttps://blog.csdn.net/weixin_45967615/article/details/104688739原创 2022-03-01 09:51:23 · 130 阅读 · 0 评论 -
rpi4b or rk3288 start-up on android
1.在咸鱼上够买rpi4b or rk32882.安装repo 而不是使用snap直接安装3.使用此教程下载源码 4b原创 2022-03-01 09:51:10 · 129 阅读 · 0 评论 -
八股文之六数据结构和容器
数据结构原创 2022-03-01 09:50:53 · 111 阅读 · 0 评论 -
2022安卓开发常见面试题
1.安卓系统启动流程:init进程 -> Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程Android系统启动的核心流程如下:1、启动电源以及系统启动:当电源按下时引导芯片从预定义的地方(固化在ROM)开始执行,加载引导程序BootLoader到RAM,然后执行。2、引导程序BootLoader:BootLoader是在Android系统开始运行前的一个小程序,主要用于把系统OS拉起来并运行。3、Linux内核启动:当内核启动时,设置原创 2022-02-21 22:01:03 · 695 阅读 · 0 评论 -
八股文之八跨进程和启动
mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。mmap优点共有一下几点:1、对文件的读取操作跨过了页缓存,减少了数据的拷贝次数,用内存读写取代I/O读写,提高了文件读取效率。2、实现了用户空间和内核空间的高效交互方式。两空间的各自修改操作可以直接反映在映射的区域内,从而被对方空间及时捕捉。3、提供进程间共享内存及相互通信的方式。不管是父子进程还是无亲缘关系的进程,都可以将自身用户空间映射到同一个文件或匿原创 2022-02-18 15:00:29 · 187 阅读 · 0 评论 -
八股文之七内存管理
进程类型1、前台进程(foreground):目前正在屏幕上显示的进程和一些系统进程。举例来说, Dialer Storage,Google Search 等系统进程就是前台进程;再举例来说,当你运行一个程序,如浏览器,当浏览器界面在前台显示时,浏览器属于前台进程(foreground),但一旦你按 home 回到主界面,浏览器就变成了后台程序(background)。我们最不希望终止的进程就是前台进程。2、可见进程(visible):可见进程是一些不再前台,但用户依然可见的进程,举个例来说:widg原创 2022-02-17 18:12:02 · 76 阅读 · 0 评论 -
android11系统升级 java.lang.NullPointerException: Attempt to invoke interface method ‘boolean android
1,在目录下``out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar改名得到 framework.jar 把framework.jar 复制到Androidstudio项目目录的libs文件夹下;鼠标点击右键,选择Add As Library ,接着选择framework.jar 所在的module,即可在module的build.gradle自动引入framework.jar把implementation改为co原创 2021-12-11 16:01:56 · 4428 阅读 · 0 评论 -
systemservice启动流程
https://blog.csdn.net/u012654756/article/details/90674886zygote怎么启动?一整见血init进程fork出zyogte进程启动虚拟机,注册jni函数,为进入java层做准备预加载系统资源,如系统主题资源,类等启动system server,非常重要,里面跑了很多系统服务进入socket Loop,不断接受socket消息并处理看两个问题:系统服务如何启动?怎么解决系统服务之间互相依赖?系统服务怎么启动?系统服务怎么发布,让应原创 2021-12-09 16:44:39 · 428 阅读 · 0 评论 -
make[1]: *** /home/kernel/msm: No such file or directory. Stop android 编译 make: *** [Makefile:24: __
1:报错:make[1]: *** /home/kernel/msm: No such file or directory. Stop android 编译 make: *** [Makefile:24: __makefile:52: recipe for target ‘ABL_FV_IMG’ failedmake: *** [ABL_FV_IMG] Error 127make: Leaving directory ‘/home/work/factory/bootable/bootloader/e原创 2021-12-02 15:37:31 · 1754 阅读 · 1 评论 -
RadioGroup出现多选现象
如图动态生成的控件,RadioButton设置了id以后问题解决原创 2021-11-29 23:27:05 · 526 阅读 · 0 评论 -
android rtsp server or clinet work success
感谢 pedroSG94大神的rtmp-rtsp-stream-client-java的库此为我改造的一个类代码地址pedroSG94提供了camera,录屏和opengl渲染的demo类,本人改造的类可以向外暴露mediacodec的surface对象,然后可用与opengl的fbp等操作...原创 2021-11-24 10:31:55 · 4599 阅读 · 2 评论 -
nextcloud-android-talk 安卓源码浅谈
implementation 'androidx.multidex:multidex:2.0.1'implementation ("com.github.nextcloud:android-library:$androidLibraryVersion") {exclude group: 'org.ogce', module: 'xpp3' // unused in Android and brings wrong Junit version}implementation project(':talk原创 2021-11-11 11:18:22 · 2584 阅读 · 0 评论 -
nextcloud-android-talk 安卓源码浅谈
首先是~~classpath 'com.android.tools.build:gradle:4.2.1'~~ classpath 'com.hiya:jacoco-android:0.2'classpath 'gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.7.5'~~classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"classp原创 2021-11-11 10:48:33 · 817 阅读 · 0 评论 -
error: Parceler: Code generation did not complete successfully.
https://github.com/nextcloud/talk-android/pull/1230使用java8原创 2021-11-06 20:13:23 · 282 阅读 · 0 评论 -
android system source study
1.recovery and PowerManager原创 2021-10-27 10:38:49 · 91 阅读 · 0 评论 -
java.lang.NoSuchMethodError: No virtual method getSoftApConfiguration()Landroid/net/wifi/SoftApConfi
hotspotReservation = reservation; WifiConfiguration currentConfig = hotspotReservation.getWifiConfiguration(); printCurrentConfig(currentConfig); 需要复制后调用 不然就 java.lang.NoSuchMethodError: No virtual method getSoftApConfiguration()Landroid/net/wif.原创 2021-08-11 15:49:11 · 710 阅读 · 0 评论 -
安卓远程操控事件传递的2种方案
1.genymobile的scrcpy使用反射的方法获取InputManagerhttps://github.com/Genymobile/scrcpy/blob/master/server/src/main/java/com/genymobile/scrcpy/Controller.java private Method getInjectInputEventMethod() throws NoSuchMethodException { if (injectInputEventMeth原创 2021-07-28 18:09:33 · 446 阅读 · 0 评论 -
绘制矩形 可移动 可选择大小 然后切割的自定义view 这个是添加水印的方法
package com.example.myapplication;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Rect;/** * 图片工具类 * @author 水寒 *原创 2021-06-29 15:18:10 · 166 阅读 · 0 评论 -
ffmpeg编译
1.linux 服务器2.window1、下载安装MinGW:https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/2、安装MinGW,选择Basic setup下选择mingw32-base包。3、打开MinGW安装目录下的bin文件夹,将mingw32-make.exe重命名为make.exe。4、设置环境变量,把bin文件夹的路径 C:\MinGW\bin 添加到用户变量。5、查看make是否安装成功: 在c原创 2021-04-08 10:50:32 · 148 阅读 · 0 评论 -
aop
Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。Pointcut(切点):表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将原创 2021-03-25 11:29:57 · 97 阅读 · 0 评论 -
同步变异步 等待执行的变异
1,使用“标志”变量取消任务//等待回调关闭锁while (!hasreceiveSeq||seq!=receiveSeq){ sleep(1); //yield() //暂停当前执行的线程对象,并执行其他线程。这个暂停会放弃cpu资源,放弃的时间不确定。 if (time==500){ //执行超时任务 return; } time++; }2,线程调用者可以向线程发出中断请求,但是线原创 2020-11-26 19:06:41 · 246 阅读 · 0 评论 -
安卓开发自定义view中的 onclick 不执行
可能是组件用了相同id导致的原创 2020-06-30 19:51:03 · 871 阅读 · 0 评论 -
GestureDetector 使用
GestureDetector 是 Android 中,专门用来进行手势监听的一个对象,在他的监听器中,我们通过传入 MotionEvents 对象,就可以在各种事件的回调方法中各种手势进行监测。举个例子: GestureDetector 的 OnGestureListener 就是一种回调方法,就是说在获得了传入的这个 MotionEvents 对象之后,进行了处理,我们通过重写了其中的各种方法...原创 2020-03-17 17:05:11 · 234 阅读 · 0 评论 -
Java中引用四大类型
强引用(StrongReference):具有强引用的对象不会被GC;即便内存空间不足,JVM宁愿抛出OutOfMemoryError使程序异常终止,也不会随意回收具有强引用的对象。软引用(SoftReference):只具有软引用的对象,会在内存空间不足的时候被GC;软引用常用来实现内存敏感的高速缓存。弱引用(WeakReference):只被弱引用关联的对象,无论当前内存是否足够都会被GC...原创 2020-03-17 16:05:41 · 108 阅读 · 0 评论 -
Android 应用进行性能优化
函数执行时间较长ui布局嵌套过多,可以通过自定义view来加快,使用相对布局代替线性布局导致内存泄漏的几点问题:1.静态集合引用的对象无法被回收2.监听未关闭3.数据库、io、socket不关4.单例5.java内部类、匿名内部类子线程未执行完故此请使用静态内部类和弱引用oom:OutOfMemoryException1.使用arraymap、SparseArray代替hash...原创 2020-03-17 11:14:46 · 141 阅读 · 0 评论 -
安卓加密算法
加密方式的分类:对称加密算法: 加密和解密密钥相同,例如,DES、3DES、AESAES: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称 Rijndael 加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的 DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NI...原创 2020-03-16 13:59:28 · 431 阅读 · 1 评论 -
Android的热修复和AndFix方案
1.类加载方案加载class会使用BaseDexClassLoader,在加载时,会遍历文件下的element,并从element中获取dex文件方案 ,class文件在dex里面 , 找到dex的方法是遍历数组 , 那么热修复的原理, 就是将改好bug的dex文件放进集合的头部, 这样遍历时会首先遍历修复好的dex并找到修复好的类 . 这样 , 我们就能在没有发布新版本的情况下 , 修改现有...原创 2020-03-16 13:46:27 · 119 阅读 · 0 评论 -
安卓全局异常捕获,异常崩溃处理
//全部错误捕捉器public class MyCatchException implements Thread.UncaughtExceptionHandler然后在APP的application中注册,但是由于一般application都可能用了,或者不方便修改.一般采用在APP的第一个Activity中进行注册...原创 2020-03-16 13:37:51 · 207 阅读 · 0 评论 -
Android 的事件分发机制
基本会遵从 Activity => ViewGroup => View 的顺序进行事件分发,然后通过调用 onTouchEvent() 方法进行事件的处理。我们在项目中一般会对 MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP,MotionEvent.ACTION_MOVE,MotionEvent.ACTION_CANCEL 分情况进行操作。...原创 2020-03-16 11:36:07 · 112 阅读 · 0 评论 -
自定义View但是请尽可能服用系统api如圆角
Measure() 测量View的宽高Layout() 计算当前View以及子View位置Draw() 绘制视图的工作getTop() 获取View到其父布局顶边的距离getLeft() 获取View到其父布局左边的距离getBottom() 获取View到其父布局底边的距离getRight()获取View到其父布局右边的距离...原创 2020-03-16 11:22:58 · 69 阅读 · 0 评论 -
View的绘制流程
获取Windows对象,Window是一个抽象类,在Android实现中目前只有一个实现类,PhoneWindow,在我们的Activity中调用setContentView其实调用的PhoneWindow对象的setContentView方法。在PhoneWindow中的setContentView中调用了installDecor方法,在installDecor方法中调用了genera...原创 2020-03-16 11:21:39 · 126 阅读 · 0 评论 -
关于Handler.post(Runnable runnable)的解释
这个Runable会加入的消息队列当中,同时会在handler所在的线程上运行。也就是说,post(Runnable runnable) 并没有开启新的线程,这时我们就要注意了,当我们在UI主线程当中这样处理大事件时不能用此方法开启线程,而要使用新线程...原创 2020-03-16 11:13:25 · 1678 阅读 · 0 评论 -
hander机制深入理解
Handler 的作用是将 Message 对象发送到 MessageQueue 中去,同时将自己的引用赋值给 Message#target。Looper 的作用是将 Message 对象从 MessageQueue 中取出来,并将其交给 Handler#dispatchMessage(Message) 方法,这里需要主要的是:不是调用 Handler#handleMessage(Message...原创 2020-03-16 11:09:46 · 643 阅读 · 0 评论 -
安卓创建快捷方式
用requestPinShortcut方法,不同机型不可一概而论,所以还是算了吧原创 2020-03-13 17:21:02 · 260 阅读 · 0 评论 -
android:exported用途
在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。如果被设置为了false,那么这个Activity将只会被当前Application或者拥有同样user ID的Application的组件调用。很显然设置这样的想启动可以用[pendingintent],(https://blog.csdn.n...原创 2020-03-13 17:18:43 · 174 阅读 · 0 评论 -
PendingIntent作用
其实和Intent作用差不多,可以理解为是一种特殊的Intent。和Intent区别在于执行的时机不一样。Intent是立刻执行,PendingIntent是等待条件满足在执行。常用于通知、短信、闹钟等应用情景。PendingIntent Flag介绍FLAG_ONE_SHOT:获取的PendingIntent只能使用一次。FLAG_NO_CREATE:利用FLAG_NO_CREAT获取的P...原创 2020-03-13 17:15:52 · 617 阅读 · 0 评论 -
vlayout
这种框架已经淘汰或正在被淘汰的路上原创 2020-03-13 16:45:00 · 306 阅读 · 0 评论 -
WeakReference的意思
在看ThreadLocal源码的时候,其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc,为了能搞清楚ThreadLocal,只能先了解下了WeakReferenc(是的,很多时候为了搞清楚一个东西,不得不往上追好几层,先搞清楚其所依赖的东西。)下面进入正题,WeakReference如字面意思,弱引用, 当一个对象仅仅被weak reference(弱引用)指向...原创 2020-03-13 15:59:27 · 175 阅读 · 0 评论