自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Android 12 Bluetooth源码分析蓝牙配对

接着调用 packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothDevicePreference.java。接着进入packages/apps/Bluetooth/src/com/android/bluetooth/btservice/BondStateMachine.java。这个函数BTA_DmBond里调用到了system/bt/bta/dm/bta_dm_act.cc。到这里就结束了,后面就是控制硬件发起配对操作。

2023-09-22 15:39:04 1037 1

原创 C socket例子

【代码】C socket例子。

2023-07-13 15:09:03 433

原创 Ubuntu Mysql8.0创建远程用户还是无法远程链接

【代码】Ubuntu Mysql8.0创建远程用户还是无法远程链接。

2023-06-29 15:42:40 191

原创 Shell获取git status文件变动push到远程服务器

使用场景:在本地服务器进行修改代码,将修改的代码push到远程服务器进行编译。

2023-06-01 16:32:27 153

原创 Mac OS挂载ext4硬盘

如下载macfuse-4.4.3dmg安装安装过程可能会遇到“若要要启用系统扩展,您需要在恢复环境中修改安全性设置”的提示,如下图:解决:关机,直到键盘灯全灭了!再按住开机键,直到出现下图界面,再松开!具体看下面的文章链接。

2023-04-18 23:01:30 4974

原创 Linux ssh key 远程登录

Linux ssh key 远程登录

2023-02-28 21:28:19 185

原创 Linux shell scp 目录文件夹有空格

Linux shell scp 目录文件夹有空格

2023-02-15 17:53:24 362

原创 Android Studio 导入及关联framework源码

Android Studio 导入及关联framework源码

2022-09-15 11:34:03 1649

原创 Android系统分区备份与还原

通过adb备份img与还原img

2022-07-27 20:47:18 4564

原创 Android源码编译环境下载大全

Android源码编译环境大全

2022-07-15 20:13:01 268

原创 Android用wine运行x86exe程序

Android用wine运行x86exe程序

2022-07-13 22:55:40 1832

原创 Centos7安装Python3与pip3

1.下载Python3官网地址:Download Python | Python.org下载tgz包就可以了。其实下面的2个包其一都可以使用Version Operating System Description MD5 Sum File Size GPG Gzipped source tarball Source release 1440acb71471e2394befdb30b1a958d1 25800844 SIG XZ

2022-03-29 21:40:52 1517

原创 declaration of ‘java.lang.invoke.LambdaMetafactory‘ appears in /apex/com.android.runtime/javalib/cor

报错信息如下:java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/.

2021-12-31 17:52:52 776

原创 HashMap实现原理分析

HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。//HashMap的主干数组,可以看到就是一个Entry数组,初始值为空数组{},主干数组的长度一定是2的次幂,至于为什么这么做,后面会有详细分析。transient Entry<K,V>[] table = (Entry<K,V>[]) EMPTY_TABLE;Entry是HashMap中的一个静态内部类。代码如下static cl

2021-11-06 16:41:40 100

原创 Android常见面试题

0.Activity 的四种启动模式、应用场景 ?standard 标准模式: 每次启动一个 Activity 都会重新创建一个新的实例。singleTop 栈顶复用模式: 如果新 Activity 已经位于任务栈的栈顶,那么此 Activity 不会被重新创建,同时会回调 onNewIntent方法,如果新 Activity 实例已经存在但不在栈顶,那么Activity 依然会被重新创建。singleTask 栈内复用模式: 只要 Activity 在一个任务栈中存在,那么多次启动此 Ac

2021-11-06 15:28:57 100

原创 面试一问:Android内存泄露和内存溢出的区别

内存泄露概念:如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,着就会导致内存泄露。常见的内存泄露有:资源未关闭造成泄露,例如数据库使用完之后未关闭连接单例造成的内存泄露,例如单例中的Context生命周期大于本身Context生命周期线程使用Handler造成的内存泄露,当activity已经结束,线程依然在运行更新UI非静态类使用静态变量导致无法回收释放造成泄露解决方法:使用开源框架LeakCanary检测针对性解决内存溢出概念:内存溢出 out o.

2021-11-06 15:15:52 1351

原创 面试一问:Android事件分发机制

此图来源于:Android事件分发机制三:事件分发工作流程 - 简书

2021-11-06 14:47:33 1543

原创 面试一问:Handler的机制/原理

Hanlder主要是用于更新UI,这个简单的流程是需要记住的:1.Handler.sendMessage(msg)时,把msg发送到Looper的成员变量:MessageQueue(消息队列)里;2.Looper.loop()执行死循环,把MessageQueue(消息队列)的msg发送到handler.handlerMessage(Message msg)方法里,最后在此方法里更新UI操作。...

2021-11-06 14:23:01 1551

原创 编译ijkplayer错误

./compile-ijk.sh all 后报错:Check that /libijkffmpeg.so exists or that its path is correctAndroid NDK: ERROR:/Users/hins/tools/ijkplayer/android/ijkplayer/ijkplayer-arm64/src/main/jni/ffmpeg/Android.mk:ijkffmpeg: LOCAL_SRC_FILES points to a missing fil...

2021-08-31 17:55:22 1092

原创 项目git创建与删除,切换仓库地址

1.创建git库#将目录转换为git可管理的仓库git init #项目的git地址git remote origin add "xxx"删除,项目根目录rm -rf .git

2021-08-18 11:41:57 169

原创 Python3安装mysql驱动

python3一般用到的是pymysql,不是mysqldb。pip3 install pymysql

2021-07-08 09:52:16 208

原创 Android Studio编译慢解决方法

gradle.properties配置:org.gradle.jvmargs=-Xmx4096m#并行编译org.gradle.parallel=true#守护进程org.gradle.daemon=true#开启孵化模式org.gradle.configureondemand=true#开启缓存android.enableBuildCache=trueas配置运行项目就2秒,极大提高开发效率。...

2021-07-02 15:46:33 1229

原创 Mac M1 Android Kotlin Mac and os.arch=aarch64错误

Execution failed for task ':app:kaptDebugKotlin'.> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException (no error message)* Try:Run with --info or --debug optio...

2021-06-12 02:50:34 2060 3

原创 quick bms的使用

下载工具quick bms,官网:http://aluigi.altervista.org/quickbms.htm新建脚本 Script File -> New选择你要操作的文件Archive File -> Open Archive选择输出目录Folders -> Select Out Folder编写脚本,点Quick Save保存脚本,再点Extract执行脚本。...

2021-06-06 07:42:37 3855

原创 smali-2.5.2.jar转dex

java -jar smali-2.5.2.jar a smali/ -o bbb.dex

2021-05-28 14:27:22 1090 3

原创 TextView获取点击所在的行数

Spanned spannedString = (Spanned) textView.getText(); // 获取点击单词的起始索引 int start = spannedString.getSpanStart(clickableSpan); Layout textViewLayout = textView.getLayout(); // 获取点击单词所在的行数 int lineOffset = textViewLayou.

2021-05-24 09:03:23 154

原创 TabLayout ViewPager滑动不流畅

在androidx下,TabLayout ViewPager滑动不流畅。问题:滑动ViewPager时,对应的tabItem切到另外一个,而不是在中间阶段停住。解决方案:将TabLayout放到ViewPager里面。<androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" and

2021-04-27 00:10:45 825

原创 Clion集成NDK环境进行c++开发

一、创建项目二、配置CMakeLists.txt官方文档说明:https://cmake.org/cmake/help/v3.19/manual/cmake-toolchains.7.html#cross-compiling-for-androidandroid ndk里面只支持3.10.2,所以要设置cmake版本cmake_minimum_required(VERSION 3.10.2)cmake_minimum_required(VERSION 3.10.2)proje

2021-04-22 10:42:03 1007 1

原创 linux上c++多个静态库/动态库合并成一个

假设A.a,B.aC.a在/usr/local/lib目录下mkdir/tmp/libABCcd/tmp/libABCarx/usr/local/lib/A.aarx/usr/local/lib/B.aarx/usr/local/lib/C.aarcrulibABC.a*.oranliblibABC.a动态库改为so

2021-04-21 09:58:00 2125 3

原创 Android集成FFmpeg,看这篇就够了

本教程会教大家集成FFmpeg,并使用FFmpeg的代码(非命令行)进行播放mp3。一、下载FFmpeg源码,编译出静态库.a/动态库.so传送门:https://blog.csdn.net/gxhea/article/details/115539124二、将库复制到项目中我编译的是.a静态库,复制到项目中;还需要复制FFmpeg的源代码到项目中,源代码在FFmpeg的根目录,具体复制哪些请看项目结构图片三、CMakeLists.txt进行第三方库链接# For more

2021-04-19 15:08:01 7667 1

原创 Clion导入FFmpeg编译报错解决

由于业务需要做音视频功能,所以需要c++进行开发,在android studio里编码没有在Clion里爽,所以将FFmpeg的代码集成到Clion里开发,踩了一些坑,记录一下。FFmpeg先编译用于c/c++环境的静态库,不能用android ndk编译的!# $HOME/ffmpeg-build是库输出目录./configure --prefix="$HOME/ffmpeg-build" --bindir="$HOME/bin"make -j 8make install得到.a文件

2021-04-19 11:26:53 1576

原创 ffmpeg编译静态库和动态库,c/c++环境使用

网上查到的大多数都是android ndk与ffmpeg进行编译,想要c/c++库在c/c++环境调式,请执行以下命令:# $HOME/ffmpeg-build是库输出目录./configure --prefix="$HOME/ffmpeg-build" --bindir="$HOME/bin"make -j 8make install编译后得到.a静态库...

2021-04-16 19:33:22 521

原创 MAC Xcode 调试FFmpeg源码

一、下载ffmpeg源码你能看到这编文章肯定有源码?二、编译出命令执行文件./configure --enable-debug --enable-gpl --disable-optimizationsmake -j 8得到文件用于xcode执行命令的:三、创建xcode项目稍等个几分钟添加Schemes选择ffmpeg目录下的ffmpeg_g开始调试打断点可以调试...

2021-04-14 23:50:38 528 3

原创 CMakeList编译报错ninja: error: missing and no known rule to make it解决方法

Android NDK开发引用第三方库CMakeList.txt编译报错:ninja: error: '/XXX/NDKApplication/app/src/main/cpp/src/main/cpp/armeabi-v7a/libavcodec.so',needed by '/XXX/NDKApplication/app/build/intermediates/cmake/debug/obj/armeabi-v7a/libhf_code.so', missing and no known ru

2021-04-12 11:35:44 30763 9

原创 MAC飞速安装brew命令

这是镜像安装,下载速度飞快/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"

2021-04-09 10:37:12 62

原创 MAC上Android NDK与FFmpeg交叉编译

编译环境NDK:android-ndk-r20b (一定要到官网下载,不能用android studio sdk的下的ndk,传送门:https://developer.android.com/ndk/downloads/?hl=zh-cn)FFmpeg:ffmpeg-4.3.2 (传送门:https://www.ffmpeg.org/download.html)两者的版本不同,编译的脚本也不同,ffmpeg4以上configure文件不需要修改,编译报错的原因大部分是和版本有关系。创建

2021-04-09 10:27:42 1710 2

原创 android studio更新gradle

1.修改项目下的gradle/wrapper/gradle-wrapper.properties文件版本号如:3.02.在studio终端里输入:gradlew build 进行下载完成

2016-08-26 17:57:11 469

转载 让多个Fragment 切换时不重新实例化

文章转载自:http://www.yrom.net/blog/2013/03/10/fragment-switch-not-restart/在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment:123456789 public void switchContent(Fragment fra

2016-05-13 10:41:15 270

原创 android studio 配置git,绕过曾经掉下去的坑

本来一直都是用svn的,在eclipse上方便快捷,可到了android studio,提交个代码没有半个小时都不要说久!折腾了一上午果断换成git,upload minute minute.1.先下载git安装文件 https://git-scm.com/download/2.安装好后,打开android studio  点击菜单栏File-->Settings进入以下页面

2016-05-13 09:54:33 1623 1

转载 AsyncTask执行顺序

这几天,遇见个奇葩问题,记录一下。在用AsyncTask的时候,new 出来的AsyncTask总是等了很久才执行到。于是乎,想到了是不是前面已经有好几个AsyncTask的实例了,是不是线程优先级的问题呢?在了解了以下知识后,发现AsyncTask默认总是先后执行的,除非调用AsyncTask.executeOnExecutor才是并发执行,不过此方法可能造成数据混乱,但是我的Asy

2015-08-11 17:13:26 648

空空如也

空空如也

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

TA关注的人

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