
android API使用
文章平均质量分 81
android特殊API的使用
言并肃
一个默默的开发者
展开
-
Android窗口层级(Window Type)分析
车载方案存在倒车等特殊界面需要在较高的窗口层级显示,Android原有的窗口层级不满足车载需求,因此都会自定义车载窗口层级。下图为参考自定义的窗口层级:android自定义窗口层级(自定义车载系统中倒车影像显示层级)自定义窗口层级在不同Android版本中的初始层级值也是不同,因此需要通过系统属性来判断初始值。例如在Android 13平台的默认属性为2401,在Andoid 9等平台为2031。这样做的目的是由于跟Android原生的窗口层级存在冲突,因此需要根据平台来调节初始值。原创 2023-09-11 23:31:49 · 14076 阅读 · 2 评论 -
registerForActivityResult方法介绍以及封装,解决点击事件中无法调用问题
在API 29 之前的版本中,跳转 Activity 获取返回结果使用的是startActivityForResult 方法,而 startActivityForResult 方法在API 29 中废弃,为过时方法,而谷歌推出 registerForActivityResult 方法来替代。这种方式需要重写 onActivityResult 方法,然后判断 requestCode 和 resultCode 的方式处理回调,流程麻烦了一点且不合时宜。原创 2022-10-10 20:33:42 · 4402 阅读 · 0 评论 -
android解决视图超出父控件范围显示被截取问题(clipChildren属性的应用)
android解决视图超出父控件范围显示被截取问题(clipChildren属性的应用)当有多个view嵌套在一个View里,而UI的设计父View指定了具体宽度或高度,父类View为一个Fragment,而父类Fragment在Activity钟添加,Fragment指定了显示范围,当Fragment中的View设计了要在Fragment外显示,此时需要用到clipChildren属性,clipChildren为false时防止父类截取子View显示,注意:在FrameLayout中添加Fragment原创 2022-03-23 14:21:27 · 4664 阅读 · 0 评论 -
如何在 Android 上创建视频聊天?WebRTC 初学者指南
WebRTC 是一种视频聊天和会议开发技术。它允许您在移动设备和浏览器之间创建点对点连接以传输媒体流。您可以在的文章中找到更多关于它的工作原理及其一般原则的详细信息。翻译 2022-09-23 21:19:11 · 1305 阅读 · 2 评论 -
Jetpack Compose--声明式UI替代传统命令式UI的新产品
声明式用户界面(UI)已成为近年来最受关注的技术之一,不仅降低开发成本,提高开发人员的效率和技能,也使专注于具有类似代码的不同平台和设备变得更加简便。命令式用户界面已经被Android开发人员用了很长时间,习惯了XML创建UI的方式。这种创建XML的方式是强大的,但在复杂的应用程序中却将失去优势。声明性用户界面已经广泛应用在许多开发框架中,如Flutter、React和SwiftUI。原创 2022-09-17 08:00:00 · 1107 阅读 · 0 评论 -
Android 12之启动画面Splash Screens(一) -- 适配
通过// 需要在动画结束后移除SplashScreenView slideUpAnimator . addListener(new AnimatorListenerAdapter() {} });});更多请参考自定义用于关闭启动画面的动画如果想保留原启动画面Activity(),原逻辑保持为主入口,在启动画面结束后显示的内容。Google建议完全移除自定义启动画面Activity。原创 2022-09-07 00:48:51 · 15777 阅读 · 4 评论 -
android获取进程内存使用信息、一键加速(内存清理)与进程重要级别解析
所有共享其 uid 的进程都将被杀死,所有正在运行的服务都将停止,所有活动都将被删除等。此方法返回一个或多个进程的内存使用情况的信息。从 Android Q 开始,对于常规应用程序,此方法将只返回有关调用者 uid 运行的进程的内存信息;同样在 Android Q 中,此 API 允许的采样率受到很大限制,如果调用速度更快,将收到与上一次调用相同的数据。轮询法的概念是,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。...原创 2022-08-30 16:31:45 · 1889 阅读 · 0 评论 -
利用IPackageManager接口进行缓存垃圾清理(释放存储)
检索包的大小信息。由于这可能需要一点时间,结果将被发送回给定的观察者。需要权限。参数packageName 要获取其大小信息的包的名称。参数 userHandle 应获取其大小信息的用户。参数observer 操作完成时收到通知的观察者回调。使用对象(包含包的代码、数据和缓存大小)和表示操作状态的布尔值调用观察者的回调,观察者为空时表示不需要回调。此方法android弃用, 使用代替,android利用StorageStatsManager获取应用程序的存储信息。try {可调用格式化文件大小。......原创 2022-08-26 20:44:14 · 1941 阅读 · 1 评论 -
android利用StorageStatsManager获取应用程序的存储信息
访问详细的存储统计信息。为自己的应用包或 UID 调用这些 API 时不需要任何权限。但请求任何其他应用包的详细信息需要声明。得到应用程序的大小。这包括 APK 文件、优化的编译器输出和解压的原生库。得到应用程序主外部共享存储中所有缓存数据的大小。得到应用程序缓存数据的大小。得到应用程序所有数据的大小。获取存储信息还使用通过。系统服务,获取方式同。或者直接通过文件得到。...原创 2022-08-26 00:32:00 · 2151 阅读 · 0 评论 -
利用IActivityManager接口监听android系统中进程状态变化
上面方法可得到准确的包名信息来判断对应进程。通过也可获取更多的信息,但是不能实时监听系统中进程的变化。在与AMS相关的接口找到,是一个系统接口,实现类为,内部持有AMS的代理,使用实际上也是调用AMS的方法。源码分析 — Binder机制(二)之IActivityManager以上是的使用介绍,仅限于系统应用使用,非系统应用无法直接调用,可通过来定时获取进程信息进行判断处理。原创 2022-08-19 16:04:48 · 4350 阅读 · 0 评论 -
android跨进程传递布局(RemoteViews跨进程的使用)
android跨进程传递布局并回调触摸状态(RemoteViews的使用)package com.example.surfaceviewtest;import android.app.PendingIntent;import android.content.BroadcastReceiver;import android.content.ComponentName;import android.content.Context;import android.content.Intent;imp原创 2022-04-25 01:07:18 · 2765 阅读 · 0 评论 -
android使用系统隐藏接口ActivityView实现主界面分窗显示三方应用Activity
android系统隐藏API介绍android.app.ActivityViewframeworks\base\core\java\android\app/packages/apps/Car/Launcher/src/com/android/car/carlauncher/https://source.android.google.cn/devices/automotive?hl=zh-cn原创 2022-05-22 09:00:00 · 11493 阅读 · 25 评论 -
android自由窗口freeform模式的实现
freeform模式默认关闭,一些手机厂商开启了此功能,模拟器没有开启。adb shell settings put global enable_freeform_support 1adb shell settings put global force_resizable_activities 1 Intent intent = new Intent(MainActivity.this, FreeFormActivity.class); i原创 2022-05-16 09:30:00 · 11335 阅读 · 6 评论 -
android中singleInstancePerTask和taskAffinity介绍以及singleInstance和singleInstancePerTask区别
singleInstance和taskAffinitylaunchermode优先处理再考虑需不需要taskAffinitytaskAffinity和singleTask搭配使用原创 2022-05-13 17:44:24 · 4535 阅读 · 1 评论 -
【转载】Android中LocalSocket使用
https://www.cnblogs.com/bastard/archive/2012/10/09/2717052.htmlLocalSocket 在Unix域名空间创建一个套接字(非服务端)。是对Linux中Socket进行了封装,采用JNI方式调用,实现进程间通信。具体就是Native层Server和Framework层Client之间进行通信,或在各层次中能使用Client/Server模式实现通信。LocalServerSocket创建服务器端Unix域套接字,与LocalS转载 2022-04-06 18:16:16 · 1926 阅读 · 0 评论 -
浅谈android系统应用中的数据共享
ContentProviderpackage com.example.myapplication;import android.content.ContentProvider;import android.content.ContentValues;import android.content.Context;import android.content.SharedPreferences;import android.content.UriMatcher;import android.da原创 2022-04-19 16:16:50 · 2650 阅读 · 0 评论 -
DecimalFormat的使用(格式化浮点数数据)
在项目中用到数据格式化方式,替代String.format()方法。此方法更好兼容多语言,比如阿拉伯语时可以将’#‘放置从右往左在后续加上字符,而String.format()使用%s则会使阿拉伯中会强制从左往右造成格式化问题。DecimalFormat还有一个优点就是可以不显示小数点’.0’。示例代码如下: public static void main(String[] args) { printDistance(5000f); printDistance(52原创 2022-04-14 14:14:28 · 611 阅读 · 0 评论 -
RecyclerView实现拖拽效果
Google已经对RecyclerView适配好了,只需调用ItemTouchHelper,重写ItemTouchHelper.Callback再与RecyclerView即可实现拖拽效果。首先新建TestItemTouchHelperCallback.java继承ItemTouchHelper.Callback,代码如下:package com.example.myapplication;import androidx.annotation.NonNull;import androidx.recy原创 2022-04-14 17:29:42 · 2561 阅读 · 0 评论