Android开发
文章平均质量分 77
我不勤奋v
这个作者很懒,什么都没留下…
展开
-
Android google admob Timeout for show call succeed 问题解决
在 App 的 AndroidManifest 里重新声明 Admob 的广告 Activity,增加支持多进程属性 android:multiprocess = "true"后来对比了下 官网 Demo 和自己项目的差异,不同点在于我项目是在子进程加载和显示广告的,但是搜索 Admob sdk 技术文档,里面并没有接口是设置支持多进程的。问题困扰很久, 使用官网 Demo 可以正常显示结果的,网络上搜索不到相关问题。尝试去掉子进程后,果然不再报错,基本可以确定这个就是和多进程有关。原创 2023-08-07 00:20:52 · 874 阅读 · 0 评论 -
Android MMKV 接入+ 替换原生 SP + 原生 SP 数据迁移
背景:项目中一直使用的是原生 SP,众所周知,使用原生 SP 存在卡顿性能问题。因此,替换原生 SP 迫在眉睫。本文记录如何使用腾讯开源框架 MMKV 替换原生 SP、以及替换后当中遇到的一些问题解决。原创 2024-02-18 15:33:46 · 1136 阅读 · 0 评论 -
Runnable是否可以中断
如何终止子线程的Runnable原创 2022-07-03 16:21:56 · 888 阅读 · 0 评论 -
Android 短时间内多次启动同一个Service会不会有多次的binder调用
Android 短时间内多次启动同一个Service会不会有多次的binder调用原创 2022-06-18 12:59:31 · 2220 阅读 · 0 评论 -
Retrofit原理学习总结
Android 面试中经常被问到Retrofit的原理是什么。面试官这样问,如何回答呢?本文意在用总结的方式+流程图来描述Retrofit源码。1. 总结Retrofit是什么:Retrofit 是一个RESTful的HTTP网络请求框架的封装开源库,网络请求的工作是Okhttp完成的,Retrofit本身是对网络请求接口的封装。2. 结合Retrofit的使用谈原理2.1 创建Retrofit的实例2.2 创建网络请求接口实例2.3 执行网络请求...原创 2022-04-17 15:42:33 · 2239 阅读 · 0 评论 -
Android 获取真实的进程运行时内存
实时获取进程运行时内存方法原创 2022-03-05 18:46:34 · 7149 阅读 · 2 评论 -
Android 固定大小WebView加载的H5页面
1.背景:项目中经常有Android+H5混合开发的场景,大多数情况下显示H5页面的时候是全屏显示,有时候设计师却要求在界面上固定大小的位置显示H5。2. 效果:3. 核心代码实现: ...... <Button android:id="@+id/test_webview_btn" android:layout_width="wrap_content" android.原创 2022-01-08 11:24:21 · 2365 阅读 · 0 评论 -
Android 11 拍照+录制视频保存到外部共享区域
本文是Android 11 从外部存储读取文件到应用沙盒存储 和Android 11 从沙盒拷贝文件到外部共享存储区域实践篇。项目中我们有拍摄图片或者录制视频保存到外部共享存储区域的需求。Android 10之前,我们可以直接new File的形式访问外部存储区域的任意路径。Android 10后,Google推出了沙盒机制,应用通过new File形式访问只能访问自己沙盒下路径;可以通过ContentResolver访问外部共享存储区域。外部共享存储区域:主要是指Enviromn.....原创 2021-11-28 00:29:10 · 4024 阅读 · 0 评论 -
Android 11 从沙盒拷贝文件到外部共享存储区域
本文是Android 11 从外部存储读取文件到应用沙盒存储 兄弟篇 :Android 11 从沙盒拷贝文件到外部共享存储区域,效果:1. 需求中我们需要把自己应用沙盒的文件拷贝到外部共享存储区域,提供给其他app使用1)外部共享存储区域:主要是指Enviromnent下的 如Environment.DIRECTORY_DCIMEnvironment.DIRECTORY_DOCUMENTSEnvironment.DIRECTORY_DOWNLOADSEnvironme...原创 2021-11-27 23:26:15 · 5073 阅读 · 3 评论 -
Android 11 从外部存储读取文件到应用沙盒存储
Android10之前,访问外部存储目录只需要Environment.getExternalStorageDirectory().getPath()获取根目录,再通过new File()的形式访问。Android 10 开始,Google建议开发者使用文件选择访问外部存储,但是没有强制。Android 11以上,开始强制不能再通过new File()的形式访问外部存储了。效果:1. FileHandlePresenter.java实现。封装方法:发Intent拉起文件选择器..原创 2021-11-20 17:24:56 · 7413 阅读 · 2 评论 -
Android 查看第三方应用进程的内存开销
如何查看第三方应用进程的内存开销,举个例子:打开QQ小游戏,想知道QQ小游戏进程占用的内存大小,但我们不知道QQ小游戏的包名或者进程ID, 如何操作呢?1)adb shell2)toptop命令执行后,可以知道QQ小游戏的包名和进程ID,QQ小游戏进程有mini3和mini43)adb shell dumpsys meminfo 包名或者进程idadb shell dumpsys meminfo com.tencent.mobileqq:mini3从图中可以看出PS...原创 2021-11-20 14:09:58 · 3468 阅读 · 0 评论 -
Android 使用ViewPager2+ExoPlayer+VideoCache 实现仿抖音视频翻页播放
1. 实现效果 效果图中,视频没有铺满 是因为使用了ExoPlayer的RESIZE_MODE_FIT模式, 虽然使用RESIZE_MODE_FILL模式可以填充整个父布局,但是本Demo中使用的视频源本身就不适合全屏,会把视频拉伸,效果不好。 抖音上的视频源应该都有严格的宽高尺寸,才能做到全屏有很好的效果。2. 技术选型1)翻页功能:网上有不少例子是使用RecyclerView + PagerSnapHelper 来实现翻页功能,但是笔者认为使用ViewPager2更加简洁。....原创 2021-10-07 11:18:12 · 7421 阅读 · 15 评论 -
android 嵌套ViewPager + Fragment实现仿头条UI框架Demo
1. 实现效果2. 核心实现 1)BaseViewPagerAdapter.javapublic class BaseViewPagerAdapter extends FragmentPagerAdapter { protected ViewPager mViewPager; protected LinearLayout mTabContainer; protected int[] mTabResArray; protected List<....原创 2021-10-03 16:42:09 · 957 阅读 · 0 评论 -
OKHttp原理学习总结
OKHttp 网络框架的原理在面试过程中经常被问道,笔者希望通过总结文字+流程图的方式来归纳OKHttp的原理,因此本文不会有过多的源码描述。1. OKhttp是什么?OKHttp 是由Square公司开源的网络请求框架。Google在Android4.4以后开始将源码中的HttpURLConnection底层实现替换为OKHttp。2. 为什么要使用OKHttp网络请求框架,或者该网络请求框架有什么优点?1)支持Http1、Http2、WebSocket2)底层TCP socket 连原创 2021-08-22 17:54:41 · 935 阅读 · 0 评论 -
android Hook IActivityManager和IActivityTaskManager
public class HookManager { private static final String TAG = "HookManager"; public static void hookActivityManager(){ if(Build.VERSION.SDK_INT > Build.VERSION_CODES.P){ hookIActivityTaskManager(); }else{ .原创 2021-08-07 15:36:55 · 1537 阅读 · 1 评论 -
Android 自定义AlertDialog 的内容view控制系统媒体音量
最近项目里有个功能点,需要使用定制seekbar调节媒体音量,不能使用【按物理音量上下键】弹出的系统dialog做音量调节。有位同学也做过类似的demo,https://blog.csdn.net/a1533588867/article/details/53738027,这个demo虽然可以很好地做到拖动定制的seekbar或者按物理音量上下键调节媒体音量,但是我觉得这个demo实用性不太够...原创 2019-05-26 17:05:07 · 496 阅读 · 1 评论 -
MVVM: ViewModel+LiveData+DataBinding+Retrofit+Room+Paging+RxJava 总结与实践(Java实现)
最近,阅读了国外一篇关于viewmodel+livedata的文章https://proandroiddev.com/mvvm-architecture-viewmodel-and-livedata-part-1-604f50cda1 ,收益良多,纸上得来终觉浅,绝知此事要躬行,决定自己也亲手撸一个demo。一两句话和一两个图总结:LiveData作用(1)实际上就是一个观察者模式的......原创 2019-03-21 17:39:53 · 5954 阅读 · 25 评论