自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android编译时打印所有引用的so库路径

在app module build.gradle 最后添加脚本。

2025-06-12 16:44:23 65

原创 Android Cameara2 + MediaRecorder 完成录像功能

打开相机预览流程是Camera2的默认流程可参考:https://blog.csdn.net/kk3087961/article/details/135616576。

2025-05-27 14:29:26 780

原创 Android 应用wifi direct连接通信实现

1.必须启用Wi-Fi功能:在设备设置中开启Wi-Fi主开关(即使未连接路由器)关闭冲突功能:若已开启「热点共享」或连接到其他Wi-Fi网络,需先关闭相关功能以避免硬件占.-- Wi-Fi Direct 核心权限 -->-- Android 10+ 需位置权限 -->1.1.代码调用打开WIFI// 获取Wi-Fi管理器实例// 开启Wi-Fiif (!

2025-04-19 16:56:00 972

原创 新版Android Studio设置gradleJDK版本方法

进入 File-Settings界面点击截图选项。

2025-04-15 11:12:58 330

原创 Android 应用蓝牙连接通信实现

Log.d("Bluetooth", "发现设备: " + device.getName() + " - " + device.getAddress());//配对过后,创建RFCOMM Socket并连接到服务:使用UUID指定服务标识符,创建RFCOMM Socket并连接到远程设备。// 获取已连接设备的MAC地址。//name:字符串参数,表示服务的名称,这个名称会被写入设备的SDP(服务发现协议)数据库。1. 客户端设备(主动发起连接的设备)创建RFCOMM Socket并连接 连接远程设备。

2025-04-10 19:07:21 899

原创 Android 系统ContentProvider流程

先从pms获取ContentProvider基本信息创建 ContentProvider实现类对象,然后将ContentProvider 的 Binder 接口对象封装到 ProcessRecord.pubProviders供应客户端aidl调用。

2025-03-29 16:58:09 1109

原创 通过协程将异步调用转换为同步调用且添加请求超时策略

【代码】通过协程将异步调用转换为同步调用且添加请求超时策略。

2025-03-26 15:36:50 94

原创 Android 系统Service流程

1.应用bindService时 会先创建一个LoadedApk.ServiceDispatcher对象和一个LoadedApk.ServiceDispatcher.InnerConnection(继承IServiceConnection.Stub) 是aidl 服务端实现类对象mIServiceConnection,

2025-02-14 17:12:04 1095

原创 adb shell 查询Android应用cpu内存占用及优化

在Android系统性能分析时,经常会拿到系统历史cpu和内存占用日志,来分析某段时间哪些应用cpu和内存占用是否特别高以及变化来确定应用内存或cpu是否需要优化。

2025-01-07 13:56:33 3829

原创 AMS初始化、应用启动及activity启动流程分析(Android 11)

源码查看路径:http://xrefandroid.com/android-11.0.0_r48/涉及到源码文件:由Android系统启动流程可知SystemServer进程启动时,会调用SystemServer.startBootstrapServices 启动系统Boot级别服务,该方法会启动ams,调用流程如下:1.创建ActivityTaskManagerService并启动。

2024-11-13 19:26:36 1280

原创 Android系统广播流程

主要用到的源码文件提供应用注册广播入口,和ams通信。分发广播信息给为应用注册的广播,其内部的aidl实现类InnerReceiver接收Android系统中广播,注册一个广播会创建一个InnerReceiver对象。初始化3种广播队列,处理注册广播流程缓存注册的广播对象binder等信息,处理发送广播流程处理广播分发流程,和广播超时策略。mParallelBroadcasts存储无序广播列表。

2024-10-31 17:02:08 593

原创 HashMap,SparseArray和ArrayMap 使用场景

优点:SparseArray在存储和读取数据时候,使用的是二分查找法,在获取数据的时候非常快,比HashMap快的多,因为HashMap获取数据是通过遍历Entry[]数组来得到对应的元素。因为它避免了自动装箱的过程,如果key为long类型,它还提供了一个LongSparseArray来确保key为long类型时的使用,一、SparseArray 内部使用两个数组mKeys和mValues来进行数据存储,一个存储key,另外一个存储value。1.2、如果key类型为其它的类型,则使用ArrayMap。

2024-09-19 17:02:13 349

原创 Android系统启动流程简介

ActivityManagerService通过Binder机制与ActivityManager进行通信,提供对系统中其它组件的管理和监控功能.从上面可知SystemServer.startBootstrapServices 启动系统Boot级别服务 会启动ams,调用如下:SystemServiceManager.startService(@NonNull final SystemService service) 方法。

2024-08-13 19:14:05 1069

原创 gradle 插件版本 4.2.2对应gradle 发行版本以及支持的 kotlin版本

gradle 插件版本 4.2.2对应gradle 发行版本以及支持的 kotlin版本 如下:项目 build.gradle文件中:gradle-wrapper.properties 文件中:官方匹配关系如下链接:

2024-08-09 10:57:59 1684

原创 不销毁activity实现白天黑夜主题切换

一.onCreate初始化AppCompatActivity.onCreate 先调用getDelegate() 创建 AppCompatDelegateImplN(最终继承AppCompatDelegateImplV9->AppCompatDelegateImplBase)对象 delegate,然后调用 delegate.installViewFactory()AppCompatDelegateImplV9 实现接口LayoutInflater.Factory2。

2024-08-02 17:00:34 850

原创 Android应用与SurfaceFlinger建立连接及通信的过程

Android应用与SurfaceFlinger建立连接及通信的过程主要用到的文件。

2024-07-19 17:23:02 874

原创 Android中毛玻璃效果的两种实现

方法1 先将图片缩小,然后放大图片,再设置为控件背景以达到更模糊的效果,同时也提升模糊算法的处理效率。对比下来同样的模糊半径 ,方法1 的模糊效果更好,且方法1 的模糊半径可以设置范围更大。2.使用Android自带类RenderScript 实现。Android中毛玻璃效果主要有两种实现方式。3.FastBlurUtil.java 类。1.使用JAVA算法FastBlur实现。2.BitmapUtil.java 类。方法2 模糊半径只能设置1-25。1.activity中调用。

2024-05-07 17:34:19 2561

原创 高通 camera hal 流程

以高通 msm8998 平台为例介绍高通 camera hal。库文件名称:camera.msm8998.so源码目录:/hardware/qcom/camera/msm8998/QCamera2主要文件:QCamera2Hal.cpp 定义了 HAL_MODULE_INFO_SYMQCamera2Hal.cpp 中定义的 HAL_MODULE_INFO_SYM 初始化 camera_module_t 对象,

2024-05-06 19:15:28 2839

原创 Android activity主题设置

注意 如果AndroidManifest 默认陪着一个主题,然后onCreate代码中动态切换主题,主题背景色切换 会有一个闪的过程。方法1 AndroidManifest 设置theme。方法2 Activity 中设置theme。

2024-03-20 10:54:39 570

原创 Android mvvm使用流程

ViewModelProvider初始化时如果不传递 ViewModelProvider.Factory,则ViewModelProvider内部会使用默认的 Factory,getTestLiveData 返回LiveData提供 数据给ViewModel,ViewModel 及view层获取到LiveData即监听数据的变化。ViewModel 类提供了一种保存和管理界面相关数据的机制,并确保这些数据在配置更改(如设备旋转)时不会丢失或重新创建。3.创建view类UiTestActivity。

2024-02-26 13:06:23 840

原创 Android aidl流程

com.android.demo.aidl.IIpcService asInterface 方法 返回new com.android.demo.aidl.IIpcService.Stub.Proxy(obj),即返回IIpcService.Stub.Proxy实例。创建 IIpcService.aidl和IIpcServiceListener.aidl,具体源码和aidl工具生成的IIpcService.java和IIpcServiceListener.java。

2024-02-06 14:59:39 1385

原创 Android aidl 工具使用

o和-h参数分别指定.cpp文件和.h文件输出的路径。PS:如果设置参数ndk,生成的文件可以不依赖Android源码。1.aidl 工具在sdk中路径:~/Android/Sdk/build-tools/33.0.0-rc2/2.IIpcServiceListener.aidl文件。C++接口文件比较多,一个aidl文件生成4个文件。3.-I DIR, --include=DIR import搜索路径,指定依赖的aidl文件所在目录。查看生成的头文件和cpp文件 1。查看生成的java文件1。

2024-02-06 09:42:02 1105

原创 android camera client、CameraService及camera hal调用流程

这里的 hardware::camera::provider::V2_4::ICameraProvider 对应 android.hardware.camera.provider@2.4 .so模块,CameraProvider就是与HAL层so的交互。因为 Camera 也继承 ::android::hardware::BnCameraClient 所以可以将 Camera 赋值给 TCamCallbacks(即 TCam为::android::hardware::ICameraClient)

2024-02-02 14:10:17 3232 3

原创 Android中的智能指针流程

智能指针是C++中的一个概念,通过基于引用计数的方法,解决对象的自动释放的问题。5.2 从如下模板类 sp定义可知,创建sp时会调用sp::sp,然后调用other->incStrong,即 weakref_impl 的 incStrong ,最终调用。3.2从如下模板类 wp定义可知,创建wp 时会调用wp::wp,然后调用other->createWeak,即weakref_impl的 createWeak,最终调用。要想访问弱指针所指向的对象,

2024-01-25 16:14:35 1009

原创 c++类和java类使用的差异

7.c++ const int顺序可颠倒,int const也可以。6.c++ 类 继承使用: public 父类,其中public 是用来修饰每个基类。4.c++ 类初始化对象my方式 和java不同。在java类中全局镜头变量,可以声明final, 也可以不声明。5.c++ 类 中静态变量访问 符号不同,c++使用::,JAVA使用.2.c++ 的函数声明在类内部,c++ 的函数定义在类的外部;----------java类代码示例。----------c++类代码示例。3.c++ 类定义结束;

2024-01-22 15:02:48 489

原创 Ubuntu和windows连接串口设备方法

查看 设备管理器查看串口连接的事哪个端口, 在putty端口下拉栏,选择串口设备用的端口例如:COM4。speed输入115200,connection type选择Serial,点击open即可。2.串口板连接主机和电脑后执行命令进入串口界面。2.打开PUTTY工具,进入对应界面,如图所示。Ubuntu和windows连接串口设备方法。1.下载并安装 minicom工具。1.下载并安装putty工具。二、windows连接串口。一、Ubuntu连接串口。

2024-01-18 16:05:36 1572

原创 kotlin 调用对应java实现

public final class LoginResult { 对应变量 get set方法等}2.2 open class kotlin调用 ,open表示可继承。kotlin 调用对应java实现。--------- java实现。----------java实现。----------java实现。----------java实现。----------java实现。----------java实现。----------java实现。----------java实现。----------java实现。

2024-01-18 13:12:39 617

原创 shell 常见命令

====模拟点击返回键 keyevent 4,home键3。====apksigner命令查看查看apk文件是v几签名。====命令查询 v1 和v2签名apk的签名详情信息。====== adb 查询Android系统版本。主体公共密钥算法: 2048 位 RSA 密钥。签名算法名称: SHA256withRSA。====根据包名称获取 apk 路径。=====强制设置存储空间低。====清除对应包的数据和缓存。=====添加log缓冲区大小。====依据包名查询签名信息。====依据包名查询版本号。

2024-01-18 10:29:40 456

原创 launcher 点击和滑动屏幕过程分析

若onInterceptTouchEvent方法 return true,则会进入 onTouchEvent事件中,onInterceptTouchEvent只会执行一次本次ACTION_MOVE而onTouchEvent会执行多次包括上面的ACTION_DOWN,ACTION_MOVE,ACTION_UP的事件;------------------------------------------------------滑动一次log-----------------------------

2024-01-18 10:26:15 413

原创 android onInterceptTouchEvent和onTouchEvent的执行关系

------onInterceptTouchEvent不拦截 part1---------onTouchEvent不接收。-------onInterceptTouchEvent不拦截 part1---------onTouchEvent不接收。-------onInterceptTouchEvent不拦截 part2---------onTouchEvent接收。-------onInterceptTouchEvent不拦截 part2--------onTouchEvent接收。

2024-01-18 10:25:26 405

原创 launcher 壁纸相关

开启壁纸选择器,所有<intent-filter> <action android:name="android.intent.action.SET_WALLPAPER" /> 所有action为android.intent.action.SET_WALLPAPER的应用都会进入壁纸选择列表,默认壁纸读取的是frameworks/base/core/res/res/drawable-相关dpi/default_wallpaper.jpg。文件记录的壁纸的宽度高度等信息。2.壁纸如何随着屏幕切换移动?

2024-01-18 10:24:27 392

原创 android 抓log 方法

dmesg是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)开机信息亦保存在/var/log目录中,名称为dmesg的文件里。在导出到u盘的log中,进入目录 /android_logs/logm/ 查看the_xx_top.log。adb logcat -v time > D:\Monkey\录音机\logcat.txt。//2.抓普通log 到文件, 将文件保存为1.bat,双击执行。

2024-01-18 10:09:08 663

原创 Android JNI, .so library 调试命令

详情见:http://blog.csdn.net/jianzhengzhouzjz/article/details/7766656。----高通平台还有一种方法调试。

2024-01-18 09:59:02 418

原创 fastboot 单独烧录bootimage

用which fastboot命令找到fastboot所在的目录,然后进入此目录;2.将下段代码保存成download_bootimage.bat,双击该bat文件即可。fastboot 目录 ~/7710/out/host/linux-x86/bin。注:单独烧录 其他模块同此方法,如:烧录 system.img 第三行变成。1.将编译好的bootimage.img 放到烧录目录里面,执行命令:make bootimage (常用的。1. 将fastboot的所有者属性改成root。

2024-01-18 09:57:50 567

原创 将整个android项目导入Eclipse

4,然后File-New-java Project 指定Location为android源码所在的目录(也就是.classpath文件的复制的位置)。1, 将源码目录下 development/ide/eclipse/.classpath 文件 拷贝到当前源码根目录。cp development/ide/eclipse/.classpath ~/源码目录名。3,修改下eclipse文件里eclipse.ini配置参数。2, 修改拷贝过来文件的权限。

2024-01-18 09:56:51 430

原创 ubuntu 使用adb shell命令配置

该文件在路径 ~/.android/ 目录下 ,若不存在创建该文件。adb_usb.ini 在文件里面输入插入手机的设备id信息,如:0x1782。这个1782 就是我连接的手机设备id,如果不能确定是哪个,可以拔掉usb线,再次输入下lsusb命令,对比一下就可以知道你的设备id是什么了。想要在ubuntu下使用adb 命令识别新连接的手机设备需要先配置一下adb_usb.ini 文件。获取设备id方法:在命令行 输入lsusb 就可以看到。这个1782就是设备的id,

2024-01-18 09:54:35 478

原创 Android支持包冲突的解决

另外还有一个建议,在我们自己创建library给别人使用时,如果需要依赖com.android.support的话,建议用provided的方式依赖(android studio3.0中更改为compileOnly),这样只会在编译时有效,不会参与打包。以免给使用者带来不便。api是android studio3.0中新的依赖方式,对依赖方式还不熟悉的话可以看这篇文章:Android Studio3.0新的依赖方式。module:删排除group中的指定module。

2024-01-18 09:51:15 615

原创 android 自定义通知栏

/自定义的布局视图。一、创建通知栏布局文件 view_notification_layout.xml。// .setContentText("您有一项新活动")//.setContent(views)//设置布局。// .setContentTitle("活动")

2024-01-17 10:38:36 824

原创 android TabLayout 相关

1. TabLayout 设置 指示条 颜色、高度,字体颜色大小等。3.TabLayout 设置子item margin值方法。2.TabLayout 添加tab方法。

2024-01-17 10:36:38 409

原创 Glide 加载图片 到动态ImageView

下面在获取到下载图片尺寸信息后,基于图片宽高比,设置imageview宽高,给imageview 设置图片资源,

2024-01-17 10:33:43 410

C语言教程 txt版 和清华的C语言教程配套

C语言教程txt版和清华的C语言教程配套

2010-03-02

Ubuntu脚本统计Android应用实时CPU内存占用生成统计报告

Ubuntu脚本统计Android应用实时CPU内存占用生成统计报告

2024-11-15

Ubuntu脚本统计Android应用实时CPU内存占用,生成统计报告

Ubuntu脚本统计Android应用实时CPU内存占用,生成统计报告

2024-11-15

Android camera用到的aidl文件和aidl编译出来.h 和cpp文件

Android camera用到的aidl文件和aidl编译出来的BnCameraService.h,BpCameraService.h,ICameraService.cpp,ICameraService.h, 单独编译方法见: https://blog.csdn.net/kk3087961/article/details/136051743 如下文章用到该编译文件: android camera client、CameraService及camera hal调用流程 https://blog.csdn.net/kk3087961/article/details/135992303

2024-03-12

aidl demo用到的源码和生成java和cpp

具体操作步骤参考 https://blog.csdn.net/kk3087961/article/details/136051743?spm=10

2024-02-06

c#俄罗斯方块源码

c#俄罗斯方块源码.还不错。

2008-04-23

空空如也

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

TA关注的人

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