Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by int resultCode
实现Android Activity之间的页面跳转及传参
一.Activity跳转 1.选择Empty Views Activity创建项目 2.创建OtherActivity3.修改activity_main.xml <Button android:id="@+id/btnJumpOther" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳转到other页面" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.508" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> 4.修改activity_other.xml <TextView...
鸿蒙Sample项目实战开发:分布式粘贴板-CSDN博客
HarmonyOS提供系统剪贴板服务的操作接口,支持用户程序从系统剪贴板中读取、写入和查询剪贴板数据,以及添加、移除系统剪贴板数据变化的回调。 设备内: 用户通过系统剪贴板服务,可实现应用之间的简单数据传递。例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。 设备间: 在分布式粘贴板场景中,粘贴的数据可以跨设备写入。例如,设备A上的应用程序使用系统粘贴板接口将从设备A复制的数据通过IDL接口存储到设备B的系统粘贴板中。如果数据允许,设备B上的应用程序可以读取并粘贴系统粘贴板中的复制数据。实现设备之间粘贴板的分布式协同。 基于以上理解,实现一个分布式粘贴板应用程序,应用程序分为客户端(copy)和服务端(paste)两部分,通过idl实现数据传递。 客户端负责数据采集,服务端负责数据的展示和应用,客户端和服务端可以安装在同一台设备中,也可以安装在不同的设备中,服务端也可以按照在多台设备中,服务端通过分布式数据库实现粘贴板数据的自动同步。 安装DevEco Studio, 详情请参考DevEco Studio下载。 设置DevEco Studio开发环境,DevEco...
Android开发笔记 |期末考试复习--【兰红 微课视频版第2版】
Android笔记总结了教材1到9章节的知识,可用于Android的学习或者期末复习,笔记字体有点小,建议放大阅读,欢迎读者提出建议或批评指正!! 1.
Android获取华为运动健康数据(以总步数为例)_android 获取运动信息
博主现在是刚毕业的学生,因此技术还有些欠缺,希望能通过编写博客来提升和记录自己的一些工作经验。 由于还没正式帮项目组干活,项目组的头就让我先做点之后可能要做的功能,这次是让我在一个负一屏的应用上,用一个卡牌来显示今日的总步数。之前在网上找了很多方法后,发现只能从0开始计步或者是获取开机之后的总步数,达不到要实现的要求,最后,还是想通过接入华为的API来直接实现获取步数的功能。其实,华为的开发者文档已经写的很详细了,但是华为写的不一定一看就懂,在这里我就记录一下实现的具体流程,写的简单易懂一点,希望能帮到要使用到这个功能的伙伴们。 (本文只对华为手机用户有帮助,其他手机用户的话,可能要下载华为运动健康app或者其他流程,可以在华为开发者联盟中进行查看) 开发前要做的 首先创建一个名为StepNumber的project,为之后的配置做准备。 在搜索引擎上搜索“华为开发者联盟”然后进入主页(这里直接附上华为开发者联盟的链接:华为开发者联盟): 在右上角进行登录或注册的操作。在完成登录操作后,用鼠标滑到“产品”再滑到“HMS...
展现鸿蒙的独特魅力:跨设备调用窗口(Page Ability)_鸿蒙 互相调用
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。 深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化! 由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新 如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)...
【Android】Binder的Oneway拦截 - iofomo - 博客园
在某些虚拟化,免安装,打点,环境检测,拦截器等场景,针对Android系统服务接口的拦截是常用的技术方案。通常只是针对正向的接口调用,如果涉及被动的服务回调拦截,则实现起来就有些许麻烦。 由于我们容器产品的特性,需要将应用完整的运行起来,所以必须要对各系统服务(超过100+系统服务)通信进行拦截过滤,修正和还原接口通信的数据。让系统和应用可以无感知运行,实现免安装运行的效果。 整个方案基本上都聚焦在服务模块主动调用的拦截上,系统回调的拦截涉及较少,但随着功能的深入,越来越需要对服务回调的接口(Binder for Oneway)进行拦截。在这里将整个通用的拦截方案和实现过程分享出来,希望对大家有益。 Binder的Oneway回调机制,即应用进程向系统服务注册回调(通常注册和取消注册成对出现),当服务端有相应时间时,可以直接回调给改Binder对象实例。 如常见的AMS服务接口: // source code: /frameworks/base/core/java/android/app/IActivityManager.aidl interface...
通过MediaProjectionManager实现截图、投屏功能(已适配至Android14)-CSDN博客
首先,在Manifest文件中添加自定义的前台服务: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" /> <application> <service android:name=".service.MediaProjectionService" android:foregroundServiceType="mediaProjection" /> </application> </manifest>...
Android 原生功能与 Vue 交互实现
前端用 Android webview 嵌入 vue 地址,如何在vue 页面中显示 Android 版本号 一.要在vue页面中显示Android版本号 从Android中将该信息传递给Vue应用程序。可以通过使用WebView的Java Bridge来实现此目的。这里是一些可能有用的步骤: 在你的Android代码中,使用getBuildVersionName()或getBuildVersionCode()等方法来获取Android的版本号。 使用addJavascriptInterface()方法向你的WebView添加一个Java对象,该对象将允许JavaScript调用原生Android代码。 在Vue应用程序中,编写JavaScript代码来调用此Java对象并获取版本号。可以在Vue组件生命周期函数中执行此操作。 在Vue模板中显示Android版本号。 下面是示例代码: 在Android中: public class AndroidBridge { private String version; public AndroidBridge(String...
JS调用Android原生相机设置_js 调用手机自带相机-CSDN博客
1、定义 private ValueCallback<Uri> mUploadMessage; public ValueCallback<Uri[]> uploadMessage; private Uri imageUri; 2、webview 设置 webView.setWebChromeClient(new WebChromeClient(){ // For 3.0+ Devices (Start) // onActivityResult attached before constructor protected void openFileChooser(ValueCallback uploadMsg, String acceptType) { mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("image/*");...
HarmonyOS 学习路之开发篇 --Intent
Intent 基本概念 Intent 是对象之间传递信息的载体。例如,当一个 Ability 需要启动另一个 Ability 时,或者一个 AbilitySlice 需要导航到另一个 AbilitySlice 时,可以通过 Intent 指定启动的目标同时携带相关数据。Intent 的构成元素包括 Operation 与 Parameters,具体描述参见表 1。 表 1 Intent 的构成元素 当 Intent 用于发起请求时,根据指定元素的不同,分为两种类型: 如果同时指定了 BundleName 与 AbilityName,则根据 Ability 的全称(例如 “com.demoapp.FooAbility”)来直接启动应用。 如果未同时指定 BundleName 和 AbilityName,则根据 Operation 中的其他属性来启动应用。 说明 Intent 设置属性时,必须先使用 Operation 来设置属性。如果需要新增或修改属性,必须在设置 Operation 后再执行操作。 关于 Intent 最简单的使用方法,可参见快速入门的示例代码。其中...
重铸安卓荣光--上传图片组件-CSDN博客
痛点: 公司打算做安卓软件,最近在研究安卓,打算先绘制样式 研究发现安卓并不像前端有那么多组件库,甚至有些基础的组件都需要自己实现,记录一下自己实现的组件 一个上传图片的组件 可以选择拍照或者从相册中上传 上传可以限制数量 上传后可以选择某张图片删除 在build.gradle中引入以下依赖 //图片选择器 implementation("com.github.wildma:PictureSelector:2.1.0") //照片查看器,可以放大缩小照片 implementation("com.github.chrisbanes:PhotoView:2.3.0") //自动换行的layout,帮助实现达到宽度后自动下一行 implementation("com.google.android:flexbox:2.0.1") 使用只需要xml中添加该组件即可,其中app开头的属性都是为了让他可以自动换行 <com.example.androidtest.test.UploadLayout android:id="@+id/uploadLayout"...
车牌识别项目:yolov5转onnx转ncnn部署安卓_yolo转onnx-CSDN博客
由于网上的车牌模型已经有很多,但是对于某些自己特定的场景的图片,可能没有很好的数据集,所以可以将这些模型拿自己的数据集再次进行训练,但是训练后的部署又是一个问题 本文章用于记录yolov5模型进行一系列的转换最后部署安卓的学习笔记 模型来源:模型来源 项目来源:安卓项目 目录 问题:在采用网上别人的模型的时候,发现特定的场景,识别率低 识别效果就不太理想,所以我们可以多采集我们需求的特定场景数据,然后对模型进行训练; 一.yolo转onnx 一般使用项目的export文件就可以对模型进行转换,教程过多不再赘述 我们得到best.onnx后,就可以对其转为ncnn 这里就采用转换工具对模型进行转换 一键转换 Caffe, ONNX, TensorFlow 到 NCNN, MNN, Tengine (convertmodel.com) 获取到ncnn模型后,就可以开始进行安卓的部署了 三.安卓的部署 首先先下载示例的安卓案例,将我们新的模型放置在assets中 接下来要修改cpp文件 在文件中找到模型的名称填写位置,有两处 修改前: 修改后:...
Android 11 访问 Android/data/或者getExternalCacheDir() 非root方式
前言: 需求要求安装三方应用ExternalCacheDir()下载下来的apk文件。 getExternalCacheDir() : /storage/emulated/0/Android/data/com../cache/ 获取访问权限 如果手机安卓版本为Android10的时候,可以在AndroidManifest.xml中添加下列代码 android:requestLegacyExternalStorage="true" 以此禁用分区存储,但这在Android11及以上版本不起作用。 非root方式 (root方式点这里) 使用 Storage Access Framework 请求访问权限。 SAF 提供了一种标准化的方式来让应用程序请求访问其他应用的文件和目录。要使用 SAF 请求访问 Android/data 目录。 private static int REQUEST_CODE_FOR_DIR = 10525; //通过SAF获取权限 public void startForSAF(Activity activity) { Uri uri =...
安卓RecyclerView实现系统相册相机添加多个图片-CSDN博客
安卓RecyclerView实现系统相册相机添加多个图片 1.这个是弹出一个弹框选择相册还是相机 private void showselectDialog() { Dialog mDialog = new Dialog(this, R.style.dialogStyle); mDialog.setCanceledOnTouchOutside(true); mDialog.setCancelable(true); //点击框外,框退出 Window window = mDialog.getWindow(); window.setGravity(Gravity.BOTTOM); //位于底部 window.setWindowAnimations(R.style.dialog_share); //弹出动画 View inflate = View.inflate(this, R.layout.dialog_picture_view, null); TextView opencamera=inflate.findViewById(R.id.open_picture_camera);...
HarmonyOS鸿蒙基于Java开发:Ability框架Intent-CSDN博客
目录 基本概念 根据Ability的全称启动应用 根据Operation的其他属性启动应用 Intent是对象之间传递信息的载体。例如,当一个Ability需要启动另一个Ability时,或者一个AbilitySlice需要导航到另一个AbilitySlice时,可以通过Intent指定启动的目标同时携带相关数据。Intent的构成元素包括Operation与Parameters,具体描述参见表1 。 表1 Intent的构成元素 属性 子属性 描述 Operation Action 表示动作,通常使用系统预置Action,应用也可以自定义Action。例如IntentConstants.ACTION_HOME表示返回桌面动作。 Entity 表示类别,通常使用系统预置Entity,应用也可以自定义Entity。例如Intent.ENTITY_HOME表示在桌面显示图标。 Uri 表示Uri描述。如果在Intent中指定了Uri,则Intent将匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。 Flags...
ContentProvider再探——Document Provider-阿里云开发者社区
概述 通过ContentProvider初探相信你已经知道如何去使用系统提供的ContentProvider或者自定义ContentProvider了, 已经基本满足日常开发的需求了,有趣的是,我在官方文档上看到了另外这几个Provider: Calendar Provider:日历提供者,就是针对针对日历相关事件的一个资源库,通过他提供的API,我们 可以对日历,时间,会议,提醒等内容做一些增删改查! Contacts Provider:联系人提供者,这个就不用说了,这个用得最多 Storage Access Framework(SAF):存储访问框架,4.4 API 19 以后引入的一个新玩意,为用户浏览手机中的 存储内容提供了便利,可供访问的内容不仅包括:文档,图片,视频,音频,下载,而且包含所有由 由特定ContentProvider(须具有约定的API)提供的内容。不管这些内容来自于哪里,不管是哪个应 用调用浏览系统文件内容的命令,系统都会用一个统一的界面让你去浏览。 预览 我们选了两个手机来对比: 分别是4.2的Lenovo S898T 和 5.0.1的Nexus...
安卓之DocumentsProvider应用场景以及优劣分析 - 洪信智能 - 博客园
文章摘要 本文深入探讨了安卓DocumentsProvider的应用场景,分析了其优势与不足,并提供了简单的代码实现。DocumentsProvider是安卓系统中用于文件存储与访问的关键组件,为应用开发者提供了强大的文件管理能力。 正文 DocumentsProvider是安卓系统中的一个组件,允许应用以统一的方式访问和管理文件。它作为存储访问框架(Storage Access Framework, SAF)的一部分,为开发者提供了一种简便、统一的方式来浏览和操作用户的文件,无需直接访问文件系统。 文件浏览器 文件管理器应用可以使用DocumentsProvider来访问和管理设备上的各种文件系统,包括内部存储、外部SD卡、云存储等。如Google的文件应用, 云服务集成 云存储服务如Google Drive、Dropbox等可以通过实现DocumentsProvider来将其云存储空间集成到Android的文件选择器中,使得其他应用可以轻松地访问和操作云端文件。 自定义文件源...
Android---打开相机拍照_别偷我的猪_09的博客-CSDN博客
简单实现打开系统系统相机拍一张图片并显示在UI上,适用与个人主页头像的切换。 1. 添加权限。AndroidManifest.xml里添加使用相机的权限。 <uses-permission android:name="android.permission.CAMERA"/> 2.
基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译--深度学习算法应用(含Python、ipynb工程源码)+数据集(四)_小胡说人工智能的博客-CSDN博客
前言 本项目依赖于Keras深度学习模型,旨在对手语进行分类和实时识别。为了实现这一目标,项目结合了OpenCV库的相关算法,用于捕捉手部的位置,从而能够对视频流和图像中的手语进行实时识别。 首先,项目使用OpenCV库中的算法来捕捉视频流或图像中的手部位置。这可以涉及到肤色检测、运动检测或者手势检测等技术,以精确定位手语手势。 接下来,项目利用CNN深度学习模型,对捕捉到的手语进行分类,经过训练,能够将不同的手语手势识别为特定的类别或字符。 在实时识别过程中,视频流或图像中的手语手势会传递给CNN深度学习模型,模型会进行推断并将手势识别为相应的类别。这使得系统能够实时地识别手语手势并将其转化为文本或其他形式的输出。 总的来说,本项目结合了计算机视觉和深度学习技术,为手语识别提供了一个实时的解决方案。这对于听觉障碍者和手语使用者来说是一个有益的工具,可以帮助他们与其他人更轻松地进行交流和理解。 总体设计 本部分包括系统整体结构图和系统流程图。 系统整体结构如图所示。 系统流程如图所示。 运行环境 本部分包括 Python 环境、TensorFlow环境、...
Android去掉视频声音_海天鹰的博客-CSDN博客
【Android】使用MediaExtractor、MediaMuxer去掉视频文件中的音频数据_android 去掉视频音频_little_fat_sheep的博客-CSDN博客 void removeSound() { try { String path = Environment.getExternalStorageDirectory().getPath(); String filename = "no_sound_" + input_path.substring(input_path.lastIndexOf("/") + 1); String output_path = path + File.separator + filename; MediaExtractor mediaExtractor = new MediaExtractor(); mediaExtractor.setDataSource(input_path); MediaMuxer mediaMuxer = new MediaMuxer(output_path,...
Android Socket使用TCP协议实现手机投屏
本节主要通过实战来了解Socket在TCP/IP协议中充当的是一个什么角色,有什么作用。通过Socket使用TCP协议实现局域网内手机A充当服务端,手机B充当客户端,手机B连接手机A,手机A获取屏幕数据转化为Bitmap,通过Socket传递个手机B显示。 实现效果: 一、 Socket是什么? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接,而建立 Socket 连接必须需要底层TCP/IP 协议来建立 TCP 连接。建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。我们知道网络层使用的 IP 协议可以帮助我们根据 IP 地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过 TCP 或 UPD...
如何实现安卓屏幕分享及视频聊天?(源码) - zhuweisky - 博客园
在一些有人际互动的手机APP中,增加语音视频聊天功能是一个常见的需求。而现在,更进一步,在某些场景下,我们需要能将自己的手机屏幕分享给他人,或者是观看他人的手机屏幕。那么,这些常见的功能是如何实现的了? 我为此专门写了一个安卓版的Demo,并将源码放出来供大家参考,希望对大家有所帮助。 1.
Android之 Zxing二维码详解
一 简介 1.1 ZXing 目前Android扫描二维码,条形码主要用google官方的工具Zxing,支持扫码,相册解码,生成带logo的二维码等功能 Zxing github 示例地址:https://github.com/zxing/zxing 1.2 ZBar 由于zxing是基于java编写的,扫码速度和解析上可能没那么快,但大部分场合足够用。也有基于c/c++的库zbar,需要编译通过才能用,下面是官网,有兴趣的可以编译试试: ZBar官网:http://zbar.sourceforge.net/ ZBar GitHub地址:https://github.com/ZBar/ZBar 1.3 华为ScanKit 目前体验最好的华为统一扫码SDK,基本可以做到秒扫和快速识别,支持多码识别和二维码生成。但该服务必须在华为开发者联盟平台注册应用,配置包名和服务json https://gitee.com/hms-core/hms-scan-demo华为官方demo示例 gitee地址:https://gitee.com/hms-core/hms-scan-demo 二...
Android 实现屏幕录制和截屏
在移动开发中,实现屏幕录制和截屏是常见的需求。对于 Android 应用而言,实现屏幕录制和截屏可以帮助开发者更好地测试和调试自己的应用,同时还能够提供一些特定场景下的用户体验。 屏幕录制 Android 应用程序可以通过使用 MediaProjection API 来实现屏幕录制功能。使用此 API 可以获取指定屏幕的图像帧,并进行相关处理或保存为视频文件。 下面是一些简要的实现步骤: 获取 MediaProjection 对象:调用 MediaProjectionManager.createScreenCaptureIntent() 方法,启动屏幕捕获 Intent,并在 onActivityResult() 方法中获取 MediaProjection 对象。 创建虚拟显示器:使用 DisplayManager.createVirtualDisplay() 方法创建虚拟显示器,并将其与 MediaProjection 对象进行绑定。虚拟显示器将模拟真实屏幕并捕获图像帧。 获取屏幕截图:使用 MediaProjection.createVirtualDisplay()...
单元测试(基于安卓项目)总结_android单元测试规范_失落夏天的博客-CSDN博客
负责公司的单元测试体系的搭建,大约有一两个月的时间了,从最初的框架的调研,到中期全员的培训,以及后期对几十个项目单元测试的引入和推进,也算是对安卓的单元测试有了一些初步的收获以及一些新的认知,因此写下这篇文章来进行一个记录和总结。 以下的所有内容纯属个人观点,欢迎讨论。 1.测试维度 单元测试有很多维度,比如针对功能点的维度,或者针对方法的维度。那么我们的项目,该如何定义这个维度呢? 安卓源码的项目中,是以功能点的维度来写单元测试的,比如验证发送一个广播的功能,验证就是广播接收者是否收到通知。这其中的流程,包含广播发送到系统侧,系统侧接收和处理,系统侧通知应用,应用分发给接收者等四个步骤。对于安卓系统来说,发送广播后,其一定能保证接收到广播,但是这样单元测试就存在耦合度,因为如果系统侧代码有问题的话,整个流程是跑不通的。对于安卓的项目,很多点我们是不能使用原生的对象,而是需要使用Mock的对象,但是随着项目的耦合度增加,环节的增多,需要mock的对象和验证点会爆炸性的增长,导致后期的单元测试方法的成本会几何式增长。...
hnust 湖南科技大学 2023 安卓 期中考试 复习资料
★:录音中提到的 ✦:推测考点 致谢:hwl,lqx,ly,sw 重点来源:7-8班 PPT和录音 内容来源:PPT 知识点大多很抽象,需要联系实际代码来理解 多做1-9章课后习题,编程题可以不做 获取最新版本 可参考 选择题(10小题×2分,共20分,不写多选为单选):分散在各个章节,大部分单选 判断题(10小题×1分,共10分):分散在各个章节 简答题(5小题×6分,共30分) 程序代码填空题(14空×2分,共28分):主要涉及2-5章的内容,建议熟悉相关的实战演练 论述题(12分) Android 定义★ 安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。 Android是Google公司基于Linux平台开发的手机及平板电脑的操作系统,它自问世以来,受到了前所未有的关注,并迅速成为移动平台最受欢迎的操作系统之一。 特点 开源性:Android 操作系统是开源的,这意味着开发人员可以自由地访问和修改其源代码,以满足特定的需求。 多任务处理:Android...
第一行代码 第八章 运用手机多媒体
使用通知 通知(Notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。 通知的基本用法 通知的用法还是比较灵活的,既可以在活动里创建,也可以在广播接收器里创建,还可以在下一章中即将学习的在服务里创建。相比于广播接收器和服务,在活动里创建通知的场景还是比较少的,因为一般只有当程序进入到后台的时候我们才需要使用通知。 无论是在哪里创建通知,整体的步骤都是相同的。首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICATION_SERVICE即可。因此,获取NotificationManager的实例就可以写成: NotificationManager manager =...
Android-图片压缩详解:原理、方法与实践_android 图片压缩_沐雨风栉的博客-CSDN博客
在Android应用开发中,处理图片是一个非常常见的需求。然而,大尺寸和高质量的图片可能会占用大量内存,导致应用程序性能下降,甚至引发OOM(Out of Memory)错误。因此,对图片进行合适的压缩是非常重要的。本文将详细介绍Android图片压缩的原理、方法和实践。 1. 图片压缩的原理 图片压缩的本质是降低图片的尺寸(像素)和质量(色彩),以减少图片占用的内存空间。图片压缩可以分为两类:有损压缩和无损压缩。 有损压缩:在压缩过程中,一些图像信息将被丢失,导致图片质量降低。然而,有损压缩能够实现更高的压缩比,从而节省更多的内存空间。JPEG是一种典型的有损压缩算法。 无损压缩:在压缩过程中,图像信息得到保留,图片质量不会降低。然而,无损压缩的压缩比通常较低。PNG是一种典型的无损压缩算法。 2.
【Android入门到项目实战-- 7.3】-- 如何调用手机摄像头和相册
目录 学完本篇文章可以收获如何调用手机的摄像头和打开手机相册选择图片功能。 先新建一个CameraAlbumTest项目。 修改activity_main.xml,代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/take_photo" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="打开摄像头"/> <ImageView android:id="@+id/picture"...
RemoteServiceException: can‘t deliver broadcast 问题分析
最近测试跑monkey连续压测,报了一个应用稳定性的问题。因为该问题比较典型,并且需要我们编码上也要注意规避该问题。我在分析过程中一直没找到根因,最后求助于leader,非常感谢不吝指教(一块周五加班分析到11点多)。 分析崩溃log,核心堆栈如下(已脱敏,出问题的android系统版本是api11,AndroidR): ps: 本次涉及的应用包名统一用com.my.app代替 11-28 03:57:20.326 12039 12039 E AndroidRuntime: FATAL EXCEPTION: main 11-28 03:57:20.326 12039 12039 E AndroidRuntime: Process: com.my.app, PID: 12039 11-28 03:57:20.326 12039 12039 E AndroidRuntime: android.app.RemoteServiceException: can't deliver broadcast 11-28 03:57:20.326 12039 12039 E...
在线直播源码,fragment中onActivityForResult得到返回值_ITPUB博客
在线直播源码,fragment中onActivityForResult得到返回值 首先从fragment跳转到一个activity, 注意:如果requestCode在onActivityResult中的值跟startActivityForResult中的值不同时,请使用getActivity().startActivityForResult()方法进行跳转!!! intent = new Intent(getContext(), RunTextActivity.class); startActivityForResult(intent,999); 再从activity返回,此时携带数据,并且setResult() mIntent是意图可以携带值 setResult(RESULT_OK, mIntent); 在回到fragment所在的activity 的onActivityForResult方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if...
安卓接入Google登录_google登录接入_coding·life的博客-CSDN博客
目录 2.添加 Google Play 服务 1.配置Google Cloud 首先要在 Google Cloud 中创建一个项目。左侧菜单->API和服务->凭据。进入之后先配置同意屏幕。 填写必必要的信息,应用名称、用户支持电子邮件地址、开发者电子邮件地址 。 到第3步添加测试用户(只有填写的测试用户才能登录测试) OAuth 同意屏幕 配置完成之后选择凭据 CREATECREDENTIALS 选择Android平台应用,填写基础的信息 创建之后信息如下: 关键点在一些其他的文档教程中会发现存在一条 Web client(Auto-created for Google Sign-in),如下图所示:这里暂时先不讲,后续会讲到这点 2.添加 Google Play 服务 在项目的顶级 build.gradle 文件中,确保包含 Google 的 Maven 代码库: allprojects { repositories { google() // If you're using a version of Gradle lower than 4.1, you must...
Android开发_记事本(1) - 张少春02 - 博客园
Textview TextView中有下述几个属性: id:为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id! layout_width:组件的宽度,一般写:wrap_content或者match_parent(fill_parent),前者是控件显示的内容多大,控件就多大,而后者会填满该控件所在的父容器;当然也可以设置成特定的大小,比如我这里为了显示效果,设置成了200dp。 layout_height:组件的高度,内容同上。 gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等等。 text:设置显示的文本内容,一般我们是把字符串写到string.xml文件中,然后通过@String/xxx取得对应的字符串内容的,这里为了方便我直接就写到""里,不建议这样写!!! textColor:设置字体颜色,同上,通过colors.xml资源来引用,别直接这样写!...
Android之 获取定位信息总结
一,概述: 1.1 android原生是有定位api的,但稳定性和准确度远远不够,所以通常需要借助三方SDK获取位置信息 1.2 国内SDK选择性较多,百度,腾讯,高德等定位api,但都是需要在平台建立应用,配置key的,包括基础的定位。 1.3 国外普遍的用google定位api和google地图,google定位是免费的,但地图是需要key的,包括地理编码webapi接口都需要key 1.4 国内就不说了,基本没限制,用哪个厂家的SDK都可以,我们主要说下不采用国内的SDK的方案 二,Android原生定位 2.1 定位普遍采用网络定位或者GPS定位,两者区别也比较大 2.2 原生定位实践 public class AndroidLocationActivity extends Activity { private static final String TAG = "MainActivity"; private Button btnLocation; private TextView tvResult; @Override protected void...
Developing a Barcode Reader To Make Life Easier
I recently came across an article saying that barcodes and barcode readers have become a mainstay of today's economies and our lives in general since they were introduced in the 1970s. So, I decided to test how true this is by seeing how often I come across barcode readers on a typical day of mine. And — surprise surprise — they turned out to be more important than I thought.
Android上传手机图片到服务器(这篇你要是看不懂,全网没你可以看懂的了!!!)_android上传图片到服务器_齊 天 大 聖的博客-CSDN博客
通过安卓app选取本地图片然后上传到服务器的整体流程步骤如下: 样式 布局代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <ImageView android:layout_width="200dp" android:layout_height="200dp" android:background="#555555" android:id="@+id/iv_image"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content"...
Android调用相机拍照,调用图库,上传图片_android 拍照上传_夏季的李子不酸的博客-CSDN博客
Android调用相机进行拍照,调用图库获取图片,可进行裁剪,显示图片,并将图片上传 public static final int PHOTO_REQUEST_CAREMA = 1;//拍照 public static final int CROP_PHOTO = 2;//裁剪 public static final int PHOTO_ALBUM = 3;//相册 private Intent intentPhoto; private Uri image_uri; private Uri album_uri; private MeMoryBitmap meMoryBitmap; private static File tempFile,album_tempFile; private static final String TAG="RegisterActivity"; //拍照 private void openCamera() { Bitmap bitmap=null; ivPhotoshow.setImageBitmap(bitmap); //调用方法,解决内存泄露...
《第一行代码》 第八章:应用手机多媒体
第一步,创建项目,书写布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/send_notice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送通知"/> </LinearLayout> 第二步:修改活动代码,写发起通知 public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle...
安卓WebView(H5)调用原生相机及相册_android webview调用相机_IT艺术家的博客-CSDN博客
在开始叙述正文之前笔者先声明一下应用场景:例如在网页上的即时通讯需要能拍照或者从图库选择图片来进行上传,此场景下就可以用到这篇文章的内容 正文 首先,如果你已经把相机以及访问文件夹的权限都加上了并且WebView的基础操作都做完了,就差上传图片了的话那就参考以下代码主,要是重写了setWebChormeClient(){}里的onShowFileChooser(){}方法 private ValueCallback<Uri> mUploadMessage; private ValueCallback<Uri[]> mUploadCallbackAboveL; private Uri imageUri; mWv.setWebChromeClient(new WebChromeClient() { @Override public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {...
Android与uni-app 互相通信案例(包含源代码)
在uni-app开发过程中,有时候会遇到uni-app插件或者提供的api对硬件操作不太友好,需要使用原生Android开发对应模块,为了使得双方通信方便,特意封装了一个接口,可实现Android与Uni-app互相通讯。 做完以下第一、第二部分,即可实现Android与uni-app 互相通信,当然双方通信有不同方式,具体情况具体分析,我的采用的方案是写Android原生插件,在uni-app中集成Android原生插件方式实现。 1、原生Android部分 Android原生涉及到的几个类,MyEvent.java(传递消息的ben类),MyEventManager.java类作用(事件管理器用来处理事件与通知监听器),MyListener.java类,作用接口回调(监听器接口)。由于采用的是uni-app插件方式,故先去uni-app官网下载插件sdk进行开发。详情见最后的代码连接,以下只是例举用的类。 代码 public class MyEvent { //数据 private Object data; //事件来源 字符串 private String source;...
How To Develop a QR Code Scanner for Pay Parking
Join the DZone community and get the full member experience. Join For Free Background Many weeks ago, when I tried to exit a parking lot, I was—once again—battling with technology as I tried to pay the parking fee. I opened an app and used it to scan the QR payment code on the wall, but it just wouldn’t recognize the code because it was too far away.
Build a Game That Features Local In-App Purchases
Several months ago, Sony rolled out their all-new PlayStation Plus service, which is home to a wealth of popular classic games. Its official blog wrote that its games catalog "will continue to refresh and evolve over time, so there is always something new to play." I was totally on board with the idea and so… I thought why not build a lightweight mobile game together with my friends and launch it on a niche app store as a pilot. I did just this.
Activity_简单点了的博客-CSDN博客
1.2Intent简介 1.简介 intent是信使,完成组件之间的通信功能。 携带数据,就是一个信息包 启动Activity,启动Service,发送BroadCastReceiver 承担应用程序之间的组件之间相互通信的作用 2.Activity之间的数据传递 3.具体方法 组件名称 方法名称 Activity startActivity() startActivityForResult() Service startService() bindService() Broadcasts sendBroadcast() sendOrderedBroadcast() sendStickyBroadcast() 启动Activity:向Context.startActivity() 或Activity.startActivityForResult()方法传递一个Intent对象,可以启动一个activity,或使得一个已经存在的activity去做一些新的事情。(也可以向 Activity.setResult()...
Android程序设计之音乐播放器实现_android音乐播放器的实现_东晋谨慎的冬瓜的博客-CSDN博客
Android毕设音乐播放器实现 一、核心技术Service组件介绍 Service它可以在后台执行长时间运行操作而没有用户界面的应用组件,不依赖任何用户界面,例如后台播放音乐,后台下载文件等。 虽然服务是在后台运行的,但是Service和Activity都是运行在当前APP所在的main thread(UI主线程)中的,而耗时操作(如网络请求、拷贝数据、大文件)会阻塞主线程,给用户带来不好的体验。如果需要在服务中进行耗时操作,可以选择 IntentService,IntentService是Service的子类,用来处理异步请求。 二、如何使用SerVice 创建Service直接在Android Studio中右键选择Service创建即可。默认我们所创建的Service是继承Service的。同时我们为了实现后台音乐播放的功能,所以我们还要实MediaPlayer.OnCompletionListener的接口。 同时还要在AndroidManifest.xml文件中对已经创建的Service进行注册,这一点Android Studio已经帮我们自动创建好了...
Android简单的文件选择器_android 选择文件_全栈兔兔的博客-CSDN博客
可能有不足,但是却可以实现效果。 一、效果图 主要实现可以在手机本地存储中选择文件,获取文件的本地存储路径字符串。 二、AndriodStudio文件及代码 代码文件又有三个-画红圈的部分 1、MainActivity public class MainActivity extends AppCompatActivity { TextView filePathtextView; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); filePathtextView = findViewById(R.id.fileTextView); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override...
鸿蒙系统(HarmonyOS)--第3章:鸿蒙Aility框架_鸿蒙框架_人间凡尔赛的博客-CSDN博客
本章目标 ❤️掌握Ability的分类; ❤️掌握Ability配置方法; . ❤️理解并掌握Page Ability生命周期 ❤️掌握Intent的不同使用方法。 😗:知识点1: Ability概述 ❌知识点2: Ability配置 知识点1: 【Ability概述】 Ability框架介绍: 1️⃣Ability是应用所具备能力的抽象, 也是应用程序的重要组成部分。 2️⃣一个应用可以具备多种能力(即可以包含多个Ability) , 3️⃣HarmonyOS支 持应用以Ability为单位进行部署。 4️⃣Ability可以分为FA (Feature Ability)和PA (Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能 ➢FA支持Page Ability: .
Android实现生成二维码以及扫描二维码的功能(超级简单!)_android 二维码_Ken'的博客-CSDN博客
提示:这里可以添加本文要记录的大概内容: 我是通过一个第三方库来实现二维码的生成,以及扫描二维码的功能,开源库如下: implementation 'com.journeyapps:zxing-android-embedded:3.4.0' 一、布局文件如下 布局比较简单,就只有简单的一些按钮,输入框,图片。 效果如下: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"...
Android多媒体功能开发(8)--使用VideoView控件播放视频_android videoview_nanoage的博客-CSDN博客
Android播放视频类主要有两种方式: VideoView控件 SurfaceView控件+MediaPlayer VideoView是SurfaceView的子类,实际上VideoView相当于SurfaceView + MediaPlayer。SurfaceView支持的功能VideoView都支持。也可用VideoView+MediaPlayer的方式播放。 视频播放控制可以使用MediaController控件,也可以用代码进行控制。MediaController是一个播放控制面板,可以加到VideoView控件上。同时,SurfaceView和VideoView都提供了播放控制的方法,所以可以用代码进行播放控制。 用VideoView播放视频的基本步骤是:创建或获取VideoView控件、设置视频数据源、开始播放、停止播放、释放资源。播放过程中可以暂停和继续。停止播放后可以恢复,此时会再从头播放。也可以重新设置视频数据源,播放另一个视频。基本流程和对应的代码如下图: 下面用一个简单的例子进行说明,界面和对应的关键代码如下:...
Android 离线文字转语音功能-TTS(Text To Speech)
前言 在 Android 中,TTS全称叫做 Text to Speech,从字面就能理解它解决的问题是什么,把文本转为语音服务,意思就是你输入一段文本信息,然后Android 系统可以把这段文字播报出来。这种应用场景目前比较多是在各种语音助手APP上,很多手机系统集成商内部都有内置文本转语音服务,可以读当前页面上的文本信息。同样,在一些阅读类APP上我们也能看到相关服务,打开微信读书,里面就直接可以把当前页面直接用语音方式播放出来,特别适合哪种不方便拿着手机屏幕阅读的场景。 Android系统从1.6版本开始就支持TTS, 不过遗憾的是系统默认的TTS引擎:Pico TTS,并不支持中文。 在查找了许相关资料后, 发现很多的资源都已经失效, APK找不到, 对应的页面404. 更多的厂商则转成了开放平台甚至不再提供离线/免费服务.
Android多媒体功能开发(6)--使用MediaPlayer类播放音频_android播放音频_nanoage的博客-CSDN博客
Android播放音频资源主要有两个类:MediaPlayer和SoundPool。 MediaPlayer用于实现对一个音频的播放控制,侧重于启动、停止、暂停、位置控制等操作。不支持同时播放多个音频,占用资源较多,延迟时间较长,适于播放较大的音频,比如背景音乐。 SoundPool用于实现对多个音频的播放管理,侧重于多个音频的实时播放。支持同时播放多个音频,占用资源少,延迟时间短,适于播放音效。最大只能申请1M内存,只能播放较短的音频。最好使用OGG格式。 使用MediaPlayer播放音频的基本流程是创建MediaPlayer对象、设置音频数据源、准备、开始播放、停止播放、释放资源。播放过程中可以暂停和继续,停止播放后可以重新准备再次播放,也可以重置音频数据源再播放其他音频。其流程图和对应的代码如下: MediaPlayer可以使用的音频数据源有三种: res/raw下的资源 存储设备上的文件 网络Uri...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with int
Contact int, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack