
Android
文章平均质量分 57
迷路啦
这个人很懒~~~
展开
-
Android 12 ~ 13 版本适配
3,读取媒体文件权限适配,使用 READ_MEDIA_IMAGE、READ_MEDIA_VIDEO、READ_MEDIA_AUDIO 替代READ_EXTERNAL_STORAGE。— 最简单的方式:windowBackground,设置一个纯色值;1,通知权限:POST_NOTIFICATIONS。2,必须声明 android:exported。2,剪贴板的内容会在 60min 之后清除。5,优化了 TextView 的断字性能。4,在后台使用身体传感器需要新的权限。1,默认的启动画面。原创 2022-10-24 14:21:26 · 1474 阅读 · 1 评论 -
React Native 踩坑备忘录
以下内容基于系统:MacOS 10.15.71,搭建环境:参考 RN 中文网yarn install --ignore-engines 会根据 package.json 文件创建必要的文件。比如:node_modules 目录2,ReactNativeActivity,getIntent() 是空的问题。解决方案:1,考虑用 ReactNativeFragment创建 RN页面,再放到正常的 Activity里面。2,参考 ReactNativeActivity,自己写 Delegate原创 2021-12-31 17:14:25 · 1872 阅读 · 0 评论 -
Replugin 宿主嵌入插件 Fragment
业务场景:在某个插件里面,我们想嵌入另一个插件的视图。1,尝试把 Fragment 换成 View,拿到插件的 View 放到宿主。2,宿主里面依赖 support 包,其他插件全部不依赖 support 包(provided)。3,反射代理插件的 Fragment 生命周期。第一种方案,是最直接的,也是问题最少的。第二种方案,也比较简单,不过需要注意 support 包的版本要统一,还有注意主题 Theme。第三种方案,需要适配。很多时候,我们碰到的业务场景是把一个插件的 Activity原创 2021-11-30 15:23:00 · 893 阅读 · 0 评论 -
接入 Google Play 结算系统踩坑
官方接入地址以 com.android.billingclient:billing:4.0.0 版本介绍:一,准备工作1,准备 Google play 开发者账号。2,创建应用内商品(商品id,商品描述,定价)。3,应用为发布状态之后,在 app 里面才能执行支付等操作。就算是开发内测阶段,也必须上传一个 apk,审核通过到发布状态。二,集成1,连接 Google Play 服务 private val purchasesUpdatedListener = PurchasesUpd原创 2021-11-18 18:18:05 · 2459 阅读 · 0 评论 -
Replugin 自定义坑位和映射跳转
Replugin 是我们熟悉的插件化框架,并且也简单好用。某些场景,我们需要自定义 Activity 的坑位。比如一些特殊的弹框,像锁屏上面弹框。最好加上属性“showOnLockScreen”<activity android:name="自定义坑位" android:configChanges="keyboardHidden|orientation" android:showOnLockScreen="true" android:showWhenLocked="true" andr原创 2021-03-05 18:35:49 · 638 阅读 · 1 评论 -
Android 全局 DNS 解析拦截
要拦截 DNS 解析,首先得找到系统哪个类去解析 Host 的。原创 2020-11-25 15:02:37 · 3105 阅读 · 0 评论 -
Android 上 WebView 和 H5 的调试
Android 端我们一般都是使用 WebView 加载 H5 网页,而我们用到和 H5 JS互调时,很多时候是跟前端开发人员联调来解决问题。只要涉及到2个人以上的联调就是比较麻烦的。因为大家大概率不是坐在一起,发现有问题也只能打字沟通。这里介绍一种调试 WebView的好方式。就是利用 Chrome 浏览器调试。1,要让 H5 能调用我们的方法,需要注入 JS。addJavascriptInterface(mJavascriptInterface, "Bridge");public class原创 2020-09-22 17:25:57 · 1939 阅读 · 0 评论 -
Java 思想
Https加密解密过程:https://jingyan.baidu.com/article/d5a880ebce62de13f147ccc5.htmlhttps://blog.youkuaiyun.com/resilient/article/details/73000977设计模式1,单例,饿汉模式,懒汉模式,双校验 + volatile,静态内部类;2,工厂模式,多线程 Executors;3,建造者模式,AlertDialog4,策略模式,Okhttp 的 Interceptor5,观察者模式,Ev原创 2020-06-30 18:30:06 · 260 阅读 · 0 评论 -
Android 思想
性能优化:TraceView 优点:通过埋点的方式精确的调试某个方法。TraceView 缺点:目前 DDMS 中的 TraceView 有 bug,find 无法使用。直接用 sdk 的 可以 find。运行时开销大,整体都会变慢。直接用 Android Studio 查看 trace 文件的缺点:无法直观地对比不同线程的执行时间。Profiler开源库的原理:事件总线:EventBus,Otto;图片库:Picasso,Fresco,Glide;网络库:Volley,Retrofi原创 2020-06-30 18:28:24 · 294 阅读 · 0 评论 -
Android上的模拟点击
模拟点击在 Android 上有2种情况:1,只模拟点击自己的页面;2,只要自己进程活着,不管是哪个应用在前台,都可以模拟点击;第一种情况比较简单: long downTime = SystemClock.uptimeMillis(); float x = 200; float y = getResources().getDisplayMetrics().heightPixels - 200; final MotionEvent downEvent = MotionEvent.obta原创 2020-06-15 18:15:06 · 1809 阅读 · 0 评论 -
Android 6~11版本适配
Android 10:1,分区存储(Scoped Storage)解决方案:1,manifest 里面加属性 requestLegacyExternalStorage2,getExternalFilesDir(),getExternalCacheDir()2,深色主题;3,后台定位权限,ACCESS_BACKGROUND_LOCATION;4,应用处于后台时,无法启动 Activit...原创 2020-03-18 13:54:25 · 1195 阅读 · 1 评论 -
Android 开发踩坑记
持续更新中 …10,在 Android 5.0 (API level 21) 以下机器上, drawable xml 资源中引用 attr , 如果在 layout 布局中引用这样的 drawable 资源, 则会引发崩溃9,singleline在ListView中效率不高, 滑动滞后,但是maxline , ellipsize 并不能完美替代singleLine。毕竟 singlel...原创 2018-08-06 17:49:53 · 573 阅读 · 0 评论 -
Git 命令值得注意的几个点
大多数人对 Git 的常用命令都有一定的了解,这里罗列一些具体案例说明需要使用哪些命令。 graph LR; Remote – pull – &amp;amp;amp;gt; Repositorygraph LR; A–&amp;amp;amp;gt;B; A–&amp;amp;amp;gt;C; B–&amp;amp;amp;gt;D; C–&amp;amp;amp;gt;D; 从网上clo原创 2018-08-06 15:25:21 · 319 阅读 · 0 评论 -
利用Transition,实现朋友圈点击图片全屏浏览效果
本文主要是介绍 Android 5.0 之后的 Activity 过渡动画 Transition。如果是整个页面的动画,实际大部分都可以用 overridePendingTransition 实现了。这里主要还是介绍当第二个界面的出现方式与第一个界面有一定的关联性的时候,特别是有共享同一元素的时候,需要的连贯的过渡动画。先看效果图:具体实现:1,首先当我们用到 Transition...原创 2018-07-27 14:58:25 · 2190 阅读 · 0 评论 -
自定义清理动画
先上图: 再附上:源码地址 欢迎大家star~上面的自定义动画效果,有以下三个关键点: 1,背景颜色变化; 2,中心位置风车的旋转; 3,四周小圈圈,吸收进中心位置; 下面详细介绍它们实现方式:实际整体控制动画的流畅性,是利用属性动画辅助的:mAnim = ValueAnimator.ofInt(0, 100);mAnim.setDuration(30 * 1000)...原创 2018-08-03 17:31:15 · 491 阅读 · 0 评论 -
JavaPoet-编译时注入代码
JavaPoet 是 Square 公司推出的开源 Java代码生成框架,提供接口生成 Java 源文件。它的项目主页及源码:https://github.com/square/javapoet这个框架功能非常有用,我们可以很方便的使用它根据注解、数据库模式、协议格式等来对应生成代码。通过这种自动化生成代码的方式,可以让我们用更加简洁优雅的方式要替代繁琐冗杂的重复工作。例如业内的一些开...原创 2018-07-19 18:40:20 · 1406 阅读 · 1 评论 -
Android安全开发规范
1、Activity 安全 描述:可被外部调用的activity,起因是因为 menifest.xml中Activity的属性explorted=true ,导致可以被劫持或者单个activity调用出现异常。 检测方法:在ADB shell 环境下输入 am start -n com.qihoo.something/com.qihoo360.SomeActivity 修复方案:...转载 2018-07-24 15:14:05 · 1326 阅读 · 0 评论 -
使用OkHttp后,遇到的那些“坑”
首先说明下:本文碰到的一些问题,都是在 okhttp-3.10.0,okio-1.14.0 这个版本碰到的。1,OkHttpClient 默认的 connectTimeout,readTimeout,writeTimeout 都是10秒,实际在应用体验上来说,有点短的。项目中最好 connectTimeout = 10s,readTimeout= 60s,readTimeout= 60s,如果...原创 2018-07-05 15:07:07 · 5110 阅读 · 0 评论 -
结合源码分析RecyclerView复用机制: Recycler
只从 RecyclerView 出现,很多开发者都替换 ListView/GridView,改用它了。原创 2018-06-28 20:18:29 · 897 阅读 · 0 评论 -
4.4以上的沉浸模式
4.4之后做沉浸模式(就是改变状态栏颜色),这里面坑很多。参考:http://www.jianshu.com/p/7f5a9969be531,6.0以下是不能改变状态栏图标字体颜色的;如果你的应用通栏是白色,针对非魅族小米和6.0以下手机,状态栏颜色最好设置成半透明黑色。2,5.0以上要使状态栏全透明需要:if(Build.VERSION.SDK_INT >=Build.VERSI原创 2017-04-25 10:19:39 · 473 阅读 · 0 评论 -
android录音播放问题
最近要做一个录音并且播放的功能,开始用的系统自带的 MediaRecorder,效果一般。尝试用AudioRecord,在用系统AEC,BS去回音去噪,结果发现效果也是差不多。尝试用WebRtc,结果发现效果也是差不多。可能跟4.1之后的系统就已经把WebRtc带上了,所以最终还是 MediaRecorder,毕竟它最简单。播放的时候:1,需要扬声器和听筒切换,就需要监听距离感应器Se原创 2017-04-25 10:19:28 · 943 阅读 · 0 评论 -
android服务防止被杀
android Service防止被杀:https://www.zhihu.com/question/29826231这篇知乎问答,很有帮助;但是最近研究 咕咚的 源码发现,咕咚 记录轨迹的方式 实际很简单,就只是把Activity放到前台,不让finish。具体做法:1,Service绑定到Activity上;2,监听锁屏,屏幕关闭时候,就打开Activity;里面还有一些其原创 2017-04-25 10:19:22 · 513 阅读 · 0 评论 -
apk重新签名打包,安装失败问题
原文连接:http://www.jb51.net/article/49411.htm给未签名的apk重新签名,需要用到jarsigner工具,但是签名之后,apk有些手机能安装,有些手机安装失败,结果找到发现是jdk版本问题。网上流行的 签名命令是:jarsigner -verbose -keystore ktm.keystore -signedjarrun0_sign.apk run0转载 2017-04-25 10:19:15 · 5941 阅读 · 0 评论 -
类似微信的即时通讯的第三方SDK
这几天在帮朋友做个东西,项目有一小块地方用到了 即时通讯,但是整个项目又不是以即时通讯为主,所以如果单独去开发 即时通讯这块,就显得比较 耗成本。在朋友的推荐以及自己的摸索下,找到了第三方的即时通讯的SDK。 1. 微客服(http://appkefu.com/),这个主要针对还是客服系统。就不多做介绍了,因为觉得它针对IM这块还需要很大的改进。(说白了,它针对IM这块bug太多原创 2017-04-25 10:19:12 · 3886 阅读 · 0 评论 -
探究微信朋友圈,图片点击效果
有段时间闲来没事的时候,想研究一下微信朋友圈的图片点击效果,一开始的感觉是用跳转activity去实现。但是后面为了封装而好用。于是自己重新写了一个类,封装其它们。我是准备用PopupWindow来做整体框架;简单来说,就是把涉及到的ViewPager,圈圈等都封装到一个类里面。点击图片,会放大至全屏,移动到中心。因为图片是在listView里面的。如果针对原ImageView动画的话,会...原创 2017-04-25 10:19:09 · 1277 阅读 · 0 评论 -
浅谈Google推出的SwipeRefreshLayo…
google继2013年推出一个网络框架(Volley),(http://blog.youkuaiyun.com/t12x3456/article/details/9221611)2014年3月左右,android support v4更新到最新版本,就会有SwipeRefreshLayout这个控件。怎么更新v4包:SwipeRefreshLayout的主要public方法有:set原创 2017-04-25 10:19:06 · 277 阅读 · 0 评论 -
关于ListView中item动态刷新下载进…
在Android开发中,我们可能会碰到这样的问题: ListView的item需要下载进度刷新这个时候,我了解到的有3个处理方式: 1. 最简单的方式,就是下载的回调里面不停调用 notifyDataChanged方法,这种方式效率最低,可能还会卡 卡的; 2. 针对需要刷新的控件,设置一个tag,再在回调里面,用listView.findVi原创 2017-04-25 10:19:03 · 541 阅读 · 0 评论 -
Android监听Log,悬浮显示
参考网址:http://blog.youkuaiyun.com/m_changgong/article/details/7661940实现原理:1)执行logcat命令;2)在service中把监听到的log内容通过广播发送出去;3)Client端接收广播,获取log内容;4)注意,添加读取log的权限为什么要监听Log?通过分析log可以监听系统安装、卸载软件等操作。具体实现,见...转载 2017-04-25 10:19:41 · 1948 阅读 · 0 评论 -
Android中的Dalvik和ART有啥区别?
什么是Dalvik?Dalvik是Google公司自己设计用于Android平台的虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex格式的; font-family: -apple-system,"sf="" ui="" sans="" micro="" font-size:="" background-col原创 2017-04-25 10:19:47 · 532 阅读 · 0 评论 -
Handler,MessageQueue,Looper,你所不知道的Asynchronous
结合源码分析Handler还是可以异步的。原创 2018-07-10 16:07:50 · 2898 阅读 · 0 评论 -
牛逼的AccessibilityService
AccessibilityService,无障碍辅助功能,运行在后台,并且能够收到由系统发出的一些事件(AccessibilityEvent,这些事件表示用户界面一系列的状态变化),比如焦点改变,输入内容变化,按钮被点击了等等,该种服务能够请求获取当前活动窗口并查找其中的内容。换言之,界面中产生的任何变化都会产生一个时间,并由系统通知给AccessibilityService。这就像监视器监视原创 2017-09-30 18:53:07 · 754 阅读 · 0 评论 -
浅谈视频壁纸
视频壁纸,对于动态壁纸开发,就得用到WallpaperService;manifest配置:配置实时壁纸Service --><service android:name="com.mill.wpengine.VideoLiveWallpaper" android:label="@string/app_name" android:exported="true"原创 2017-09-06 16:53:24 · 2000 阅读 · 0 评论 -
Android利用ffmpeg做视频裁剪
根据自己需求,编译so,或者用网上搜现成的;https://github.com/FFmpeg/FFmpeg时长裁切:ffmpeg -i src.mp4 -ss 3 -t 10 out.mp43表示起始时间,10表示长度,也就表示视频裁切出来是3-13s的视频;尺寸裁切:ffmpeg -i src.mp4 -strict -2 -vf crop=1080原创 2017-09-14 16:27:57 · 2790 阅读 · 0 评论 -
Android知识点目录
本人参考了一本书籍,但是那本书比较“坑”,没有很详细的介绍各个知识点,都还需要别人去单独搜索查询详细资料,那这本书实际就只是来了解个目录了。。。持续更新中...第1章 Android触摸事件传递机制 1.1 触摸事件的类型 1.2 事件传递的三个阶段 1.3 View的事件传递机制 1.4 ViewGroup的事件传递机制 三原创 2017-04-25 15:39:56 · 916 阅读 · 0 评论 -
NDK生成so文件
网上资料很多,我拿一个通用的模板出来,特别是重新编译别人写好的jni代码单独一个so生成:/Users/mier/Library/Android/sdk/ndk-bundle/ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=./jni/Application.mk NDK_LIBS_OUT=./jniLibs说明: /原创 2017-04-26 14:27:55 · 1512 阅读 · 0 评论 -
Android Studio运行慢优化
1,修改studio.vmoptions Windows:%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions or %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptionsMac:~/Library/Preferences/{FOLDER_NAME}/studio.v原创 2017-04-25 10:19:36 · 656 阅读 · 0 评论 -
对React Native初步学习
ReactNative处理有很长一段时间了,之前在项目中也直接用过,最近新项目开始完全用它实现,所以写了一下个人感受。React Native中文学习地址:https://reactnative.cn/先安装Homebrew/usr/bin/ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/原创 2017-04-25 10:19:44 · 375 阅读 · 0 评论