:github.com/xitu/gold-m… 译者: ppp-man 校对者:llp0574 zhaochuanxing 让 MediaStyle 的提醒功能在 Android O 上为你服务...简介 如果你在 API level 25 或以下的版本上用 MediaStyle 的提醒功能,这篇文章充当把这功能迁移到 Android O 上的指引。...第二步:用 NotificationCompat 和渠道 为了在 Android O 里用到提醒功能,你一定要用提醒渠道。...如果你在 Android O 上,就可以用 ContextCompat 这个类来自动帮你完成,如果你在 Android N 或之前的版本就需要用 startService(Intent) 来启动。...三个简单步骤就能帮你把 MediaStyle 的后台提醒功能从 Android O 之前的版本迁移到 Android O 上。
——《微卡智享》 本文长度为3729字,预计阅读6分钟 前言 最近开发的新版程序初版基本差不多了,所以抽空需要研究一下针对运维方便的辅助工具,其中就有需要做一个WIndows服务器可以远程控制Android...客户端的工具,实现的原理大概已经有了个思路了,拆解后每个细节就需要去做技术验证,远程控制首先就需要做到看到对面的图像,预览图像就要使用录屏的功能,所以就有了这个小Demo,当然最终要做的东西是不需要保存本地视频的...的OnCreate中直接调用请求录制,然后在onActivityResult里面判断是否允许录制,并开启录制。...《Android实现可移动的悬浮窗》这篇文章,这次直接把当时的代码复制过来了,用Java写的,所以也不再重新造轮子了,只不过这次的Sevice我改为使用JobService了。...cancel(JOBID) } } } Android8.0后还需要开启悬浮窗的上层权限 ,所以在动态申请权限那里还要加上这个开启。
对于eBPF可以简单的理解成kernel实现了一个虚拟机机制,将类C代码编译成字节码(后文有详细解释),挂在到内核的钩子上,当钩子被触发时,kernel在虚拟机的"沙盒"中运行字节码,这样既能方便的实现很多功能...BCC在android系统上也可以运行,但是要对系统进行一定程度的修改,后续可能会写单独的文章进行讲解。对于内核开发者我还比较关注怎么自己来实现监控的功能,下文也将做简单的讲解。 ?...8)中断性能 三、eBPF框架 在开始说明之前先解释下eBPF上的名词,来帮忙更好的理解。...Q版本上的节点信息。...至此,如何在android平台使用eBPF实现统计系统中每个pid在一段时间内系统调用的次数的功能就介绍完了。
Android上运用AOP的思想开发,可以快速的帮助我们简化在横向开发中的重复性工作,简单的说就是把涉及到众多模块的某一类问题进行统一管理比如:性能检测、日志打印手机等。...AspectJ实际上是对AOP编程思想的一个实践,当然,除了AspectJ以外,还有很多其它的AOP实现,例如ASMDex、javassist等,但目前最好、最方便的,依然是AspectJ。...} } apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion...final def variants = project.android.applicationVariants //在全局变量中配置编译项以及,对应的log输出 variants.all { variant.../Android-AOPExample 熟悉了一遍 补充:Android-AOPExample的例子下载下来,在gradle版本再2.3.0及其以上的版本编译会出现问题 报错误:No such property
OpenCV 介绍 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。...在移动端上使用 OpenCV 可以完成一系列图像处理的工作。 二. OpenCV 在 Android 上的配置 我在项目中使用的 OpenCV 版本是 4.x。...在 Android Studio 中创建一个 Library,将官网下载的 OpenCV 导入后,就可以直接调用 OpenCV 中 Java 类的方法。...例子两则 3.1 作为二维码识别的兜底方案 在 Android 原生开发中,二维码识别有老牌的 zxing 等开源库。为何还要使用 OpenCV 呢?...总结 OpenCV 是一款功能强大的图像处理库。但是它本身体积也较大,在移动端使用至少会增加 Android Apk 包 10 M+ 的体积(主要取决于 App 要支持多少个 CPU 架构)。
Android 开发中,遇到需要设置边框的情景,使用背景图来实现,代码如下: android="http://schemas.android.com/apk/res/...android" > <item android:bottom="1dp" android:left="1dp" android:right...="1dp" android:top="1dp"> android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp"
让我们为您分解令人困惑的Android术语。主屏幕墙纸是如何制作自己独特的华丽Android主屏幕的?如何制作自己独特的华丽Android主屏幕?这是整个过程的详细介绍。...如果您按照步骤进行操作,则可以在设备上看到同样引人注目的主屏幕,并学习尝试设计配方。...这就是为什么我更喜欢基本的抽象壁纸7制作漂亮的抽象Android墙纸的最佳应用程序7制作漂亮的抽象Android墙纸的最佳应用程序为什么可以在几秒钟内用这些应用程序创建自己的Android设备时下载预制背景...阅读更多 :纯色或柔和的图案。 他们不仅看起来不错,而且还停留在后台并保持我的生产力。 这是使用FreshCoat的漂亮功能制作自己的东西的方法。 主界面简单明了,您可以调整许多选项和滑块。...然后,点击“效果颜色”以更改用于创建图案的辅助颜色。 最后,使用“不透明度”滑块来增强或减少图案的鲜明度。 如果您想要一些更高级的产品,则可以轻松地在设备上使用任何图像作为墙纸的基础。
但是我发现了一个Web上最近几年比较火的一个数据库 ---- MongoDB。查看它的官网发现,它还可以用于Android开发,而且官方文档也给出了一些API说明。...于是我决定写下这篇博客分享一下MongoDB在Android上怎么使用。...【说明】:MongoDB也可以在iOS上面使用,我是做安卓开发的,本文只讲解MongoDB在Android上面的使用,iOS的使用情况请上MongoDB官网自行查阅。...'org.mongodb:stitch-android-sdk:4.1.0' } 然后在module的build.gradle的android节点里面文件中添加java 1.8支持: android...---- 三、MongoDB SDK在本地的路径 (一)、MongoDB SDK会有很多附带的依赖包 如下图所示: ?
有的开发者更关心混淆这块功能,对我而言最大的用处是打包时移除 dex 中的无用代码。 ? 一个 Android 示例应用的空间分布图,源码地址 Topeka sample app。...如果以上还不足以说服您使用 ProGuard,其实移除无用代码和混淆所有名称还有其他更多的优化效果: 在一些版本的 Android 设备上,DEX 代码会在安装或者运行时被编译成机器码。...这些警告的一个原因就是,您的构建路径中没有加入需要依赖的 JARs,如使用了 provided (仅编译时)依赖。而有时候,在 Android 上这些代码的依赖在运行时并不会被真正的调用。...在某些情况下,ProGuard 的警告确实有助于您发现闪退的罪魁祸首和关于您配置上的其他问题。...tools 目录下(SDK/tools/proguard/proguard-android.txt),但在新版的 SDK Tools 和 Android Gradle 插件版本2.2.0+上,可以在构建时从
最近研究了一下android开发的一些框架,对于开发整体上具有一定好处,对于拓展测试修改也具有一定的优势。 ?...Model:用于数据的增删改查等,也包括一些数据对象 View:用于界面的显示与用户操作的接收,在Android里面View通常就是Actvitiy,Fragment。...Presenter:是View跟Model的“中间人”,接收View的请求后,从Model获取数据交给View。...return true; }else{ return false; } } } Presenter层: public interfaceIPresenter { void onCreate();//在Activity...mvp架构的实现
[Android FFmpeg 实现带滤镜的微信小视频录制功能] 上一集,有读者吐槽这个系列更新太慢了,其实实现代码一直都有,只能每天花一点时间整理一些,慢慢整理出来。...音视频录制编码流程 [音视频编码流程图] 本文采用的是软件编码(CPU)实现,所以针对高分辨率的预览帧时,就需要考虑 CPU 能不能吃得消,在骁龙 8250 上使用软件编码分辨率超过 1080P 的图像就会导致...,限于篇幅,代码没有全部贴出来,完整实现代码可以参考项目: https://github.com/githubhaohao/LearnFFmpeg 带滤镜的小视频录制 基于上节的代码我们已经实现了类似于微信的小视频录制功能...我们基于上一节的功能做一个带滤镜的小视频录制功能。...[带滤镜的小视频录制] 参考上图,我们在 GL 线程里首先创建 FBO ,先将预览帧渲染到 FBO 绑定的纹理上添加滤镜,之后使用 glreadpixels 读取添加完滤镜之后的视频帧放入编码线程编码,
音视频编码流程图 本文采用的是软件编码(CPU)实现,所以针对高分辨率的预览帧时,就需要考虑 CPU 能不能吃得消,在骁龙 8250 上使用软件编码分辨率超过 1080P 的图像就会导致 CPU 比较吃力...,代码基本上就是照着上面的流程图实现的。...,限于篇幅,代码没有全部贴出来,完整实现代码可以参考项目: https://github.com/githubhaohao/LearnFFmpeg 带滤镜的小视频录制 基于上节的代码我们已经实现了类似于微信的小视频录制功能...我们基于上一节的功能做一个带滤镜的小视频录制功能。 ?...带滤镜的小视频录制 参考上图,我们在 GL 线程里首先创建 FBO ,先将预览帧渲染到 FBO 绑定的纹理上添加滤镜,之后使用 glreadpixels 读取添加完滤镜之后的视频帧放入编码线程编码,最后绑定到
下面讲讲Lego在Android上一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。...Model 在MVP设计模式中, View:由Activity充当,并且响应生命周期 Model:还是原来的数据层,网络,缓存,解析等。...三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。在项目结构中最为关键其实是:分模块! ?...页面结构化(Lego)与组件化的区别 组件处于通用性,是不带业务逻辑的。而页面结构化是带业务逻辑。 页面结构化目的是为了代码维护性,项目管理,优化。组件复用可以有,但不是必要 组件与Lego不冲突。...这样的一个抽象层Lego,我们可以清晰地看到该页面块,请求的数据是什么,绑定了什么事件,做了什么上报,出错怎么处理。 最后加上生命周期,页面结构化的Lego,已经算是一个完整的功能单元了。
第一类是 Medium 上热门文章的翻译,其实我也翻译过: 在 Android 上使用协程(一):Getting The Background 在 Android 上使用协程(二):Getting started...在 Android 上使用协程(三) :Real Work 说实话,这三篇文章的确加深了我对协程的理解。...在 Android 中,一般是不建议直接使用 GlobalScope 的。那么,在 Android 中应该如何正确使用协程呢?再细分一点,如何直接在 Activity 中使用呢?...我会通过简单的示例代码来阐述 Android 上的协程使用,你也可以跟着动手敲一敲。...协程在 Android 上的使用 GlobalScope 在一般的应用场景下,我们都希望可以异步进行耗时任务,比如网络请求,数据处理等等。当我们离开当前页面的时候,也希望可以取消正在进行的异步任务。
下面讲讲Lego在Android上一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。...Model 在MVP设计模式中, View:由Activity充当,并且响应生命周期 Model:还是原来的数据层,网络,缓存,解析等。...三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。在项目结构中最为关键其实是:分模块! ?...## 页面结构化(Lego)与组件化的区别 1. 组件处于通用性,是不带业务逻辑的。而页面结构化是带业务逻辑。 2. 页面结构化目的是为了代码维护性,项目管理,优化。...这样的一个抽象层Lego,我们可以清晰地看到该页面块,请求的数据是什么,绑定了什么事件,做了什么上报,出错怎么处理。 最后加上生命周期,页面结构化的Lego,已经算是一个完整的功能单元了。
这意味着你可以在没有管理员权限的环境下安装和管理软件,避免了与系统级包发生冲突的风险,也更容易管理版本和更新。...软件更新和管理Homebrew 有一个 brew upgrade 命令,它会检查你系统上的所有已安装软件包,并尝试将它们更新到最新版本,这种集中式的管理方式非常方便。...如果你想回滚到某个特定版本的包,可以使用 brew switch 命令(虽然这一功能目前已经不太常用)。另外,你还可以通过 brew pin 锁定某些软件包的版本,防止它们被更新。2....Linux 版本的 Homebrew 也有类似的功能,尽管它的支持可能没有 macOS 上那么全面。...在 Linux 上,Homebrew 支持 Docker 和其他容器工具的安装,使得你可以像管理其他软件包一样,方便地管理 Docker 引擎和相关工具。
前言 本篇博文用来研究YOLOv5在Android上部署的例程 主要参考的是Pytorch官方提供的Demo:https://github.com/pytorch/android-demo-app/tree.../master/PyTorchDemoApp 功能简述 App主页如下图所示: 主要功能: 切换测试图片 在程序中直接指定三张(或任意张)图片,点击测试图片,可以切换图片 选择图片 点击选择图片...,可以在相册中选择一张图片,也可以直接进行拍照 实时视频 点击实时视频,可以开启摄像头,直接在摄像预览中显示检测结果 切换模型(我添加的功能) 点击切换模型,可以选择不同的模型进行检测...下面来添加一个切换模型的功能,并使用自己训练的模型。...然后修改ObjectDetectionActivitys,java,这里将mOutputColumn的private修饰符去掉,使其可以在外部访问: 接下来修改xml界面,在activity_main.xml
在之前的推文车辆路径优化问题求解工具Jsprit的简单介绍与入门中,相信大家已经对Jsprit这款开源的车辆路径规划问题求解器有了基础的了解,那么Jsprit在具体的车辆路径规划问题上表现到底如何呢?...下面我们将以带时间窗的车辆路径规划问题(Vehicle Routing Problem with Time Windows, 简称VRPTW)为例,详细测试Jsprit在该问题上的表现。...而VRPTW在容量约束的前提下,加入了时间窗的约束。对于每一个需求点,设定开始时间和结束时间,要求车辆在时间窗内开始服务顾客。...其顾客的规模从25一直到到1000。 通过测试不同顾客数量的样例,可以评测Jsprit在不同数据规模下对于带时间窗车辆路径规划问题的表现。...在所有顾客数为1000的测试样例中,Jsprit的最大偏差为19.86%,最小偏差为4.58%,偏差平均值为12.94%。 下面我们来分析下Jsprit在时间上的表现: ?
公司的网站是基于pageAdmin网站系统搭建的,最近服务器要升级,以前的服务器是win2008,新买的服务器是win2012,但是代码迁移过去后,iis配置好了一直出现http403错误,按官方教程是重新装了....Net Framework4.6后还是不行,最后检测iis发现尽然没有开启asp.net4.0,下面列出步骤: 1、进入控制面板,程序管理功能,添加角色,如下图: 2、点击下一步,如下图: 继续下一步...点击下一步后进行iis重新配置安装,安装完毕后一定要重启服务器才生效,最后在iis中点击浏览网站后就可以正常运行网站了。
领取专属 10元无门槛券
手把手带您无忧上云