Android Studio

干货 | 携程Android 10适配踩坑指南

强颜欢笑 提交于 2020-10-28 11:47:39
作者简介 曙光,携程资深软件工程师,负责市场营销相关研发及管理工作。 2019 年 9 月 3 日,Google 发布了 Android 10 正式版。Android 10 聚焦移动创新、安全隐私和数字健康三大主题,全面打造最佳用户体验。 背景 目前携程旅行线上最新版本已适配到Android 10(API =29),由于从API=26升级到API=29,跨度较大,我们提前对相关适配进行了调研,希望其中一些经验能对其他开发者有一定的帮助。 在Android 10 版本中,官方的改动较大,相应的开发者适配成本还是很高的。基于前期调研,我们主要基于以下几方面进行Android 10的适配: Android X 分区存储 设备ID 明文HTTP限制 一、AndroidX AndroidX 对原始 Android Support库进行了重大改进,后者现在已不再维护。AndroidX 软件包完全取代了支持库,不仅提供同等的功能,而且提供了新的库。 1.1 什么是AndroidX Android系统在刚刚面世的时候,可能连它的设计者也没有想到它会如此成功。随着Android系统版本不断地迭代更新,每个版本中都会加入很多新的API进去,但是新增的API在老版系统中并不存在,因此这就出现了一个向下兼容的问题。 于是Android团队推出了一个鼎鼎大名的Android Support Library

计算机专业购机指南

时光毁灭记忆、已成空白 提交于 2020-10-28 11:35:57
这是一篇针对计算机系入门同学学习用途的购机指导,既然关键词是计算机IT、学习用途,本文就仅考虑你的机器往往用于编程、写作业、成果展示以及一般性测试和游戏等一般用途。有特殊需求(比如什么要选修Human computer interaction的人、对于图形渲染很有要求的非普通码农们)则不适用本指南。 本文若干名词解释: 硬指标:购机时建议必须满足的指标 软指标:建议最好能够满足的指标 FAQ:购机过程中Frequently Aske Questions 硬指标: 内存8G以及以上:大内存意味着任务多时不卡顿,具体机理上计算机架构的时候自己学去 机械硬盘1T或以上:你会问云时代要这么大内存何用?答:你是编程的人,放lib和库有用。而且最好分一半给你的C盘,不然调整系统路径玩死你(这点后面还会提) 核第三代i7或以上:两年以前可能i5够用。但是近些年来随着科学计算、数值计算、移动计算开发等等的兴起,i5的核在跑计算的时候可能就已经略显吃力了。因此推荐新入的同学确保你的计算机核的水平在第三代i7以及以上。 操作系统:推荐win10,这都2020年了基本你买来的都是Win10吧。至于用不用Mac看个人。对了。据用Mac的人说码农最好用Pro,Air跑代码略吃力。用不用Linux么……呵呵,这就看造化了 接口:VGA、HDMI、网线以及读卡器都至少要有的哦,不为啥

【我的Android进阶之旅】解决Android Studio编译后安装apk报错:The APK file does not exist on disk

ε祈祈猫儿з 提交于 2020-10-27 11:49:36
1、错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_6476_official_debug.apk does not exist on disk. Error while Installing APK 如下图所示 2、解决方法 1、尝试了Build -> Clean Project再编译,还是无效 2、尝试重启Android Studio无效 然后我去打开build\outputs\apk\目录,发现里面编译好了APK文件,不过文件名确实: OYP_2.3.4_I2Base_6478_official_debug.apk 如下图所示: 因此原因就是,Android Studio编译好之后的APK文件是 OYP_2.3.4_I2Base_6478_official_debug.apk 而它要安装APK文件名确实 OYP_2.3.4_I2Base_6476_official_debug.apk 因此就会报错了。google查了一下错误,在http://stackoverflow.com网站上有一篇关于此错误的解决方法,链接如下所示: http://stackoverfl 来源: oschina 链接: https://my.oschina

Android Studio笔记之webview ——实现播放器全屏功能

删除回忆录丶 提交于 2020-10-27 11:28:02
这篇文章已经解释的非常好了 如何实现视频全屏播放 我的代码: webview: package cn.edu.caztc.myapp; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.net.Uri; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.WindowManager; import android.webkit.WebChromeClient; import android.webkit.WebResourceRequest; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android

安卓 gradle-6.5下载失败,解决方案

徘徊边缘 提交于 2020-10-27 09:59:25
android studio gradle-6.5下载失败, 方案1,换个下载地址: 打开gradle-wrapper.properties,编辑distributionUrl: distributionUrl=https://downloads.gradle-dn.com/distributions/gradle-6.5-bin.zip 修改后保存,按同步。 方案2,离线方式: (1)把上面的下载地址复制,用迅雷下载。 (2)进入C:\Users\Administrator\.gradle\wrapper\dists\gradle-6.5-bin\5a59v65v3d3is8vozuci38s95\,删除此目录下所有的内容, (3)把gradle-6.5-bin.zip粘贴到此目录下,解到当前文件夹。 (4)启动android studio。 Good Luck. 来源: oschina 链接: https://my.oschina.net/u/4259850/blog/4690494

AndroidStudio Gradle命令

依然范特西╮ 提交于 2020-10-26 11:27:41
查看gradle相关的版本信息 gradlew -v 清除build文件夹 gradlew clean 打debug/release包,打出的包在 app/build/outputs/apk/release (或者debug文件夹)路径下 gradlew assembleDebug 简写: gradlew aD gradlew assembleRelease 简写: gradlew aR 打debug/release包并安装到AndroidStudio连接的设备上,打出的包路径同上 gradlew installDebug 简写 gradlew iD gradlew installRelease 简写 gradlew iR 查看运行报错"Error:Execution failed for task ':test:processDebugManifest'.> Manifest merger failed with multiple errors, see logs"更详细的错误信息 gradlew processDebugManifest --stacktrace adb启动服务 adb start -server adb关闭服务 adb kill -server adb 安装apk包 adb install -r D:\WorkSpace\MyProject

Android Studio新特性:使用TFLite模型更简单

我的未来我决定 提交于 2020-10-25 12:40:57
Android Studio仍然在疯狂更新中,隔一段时间打开Android Studio,就会提示有新版本,对此我已经见怪不怪。一般而言,我会顺手点击一下升级。今天我又点击了升级,粗略看了一下新版本4.1的特性说明,其中有一项是: 使用TensorFlow Lite模型 。出于对机器学习的兴趣,于是就研究了一番这个新特性。 TensorFlow Lite是最受欢迎的编写移动端机器学习模型的开发库,在我之前的文章中也写过如何在Android程序中使用TFLite模型。有了TFLite模型后,我们需要模型开发者提供模型的输入、输出等信息,然后编写封装类,对图片进行预处理(比如裁剪、规范化等等),这对于开发者而言,枯燥而且容易出错。而在Android Studio 4.1中,这个开发过程得到了简化,导入模型后,Android Studio会生成辅助类,我们只需编写极少的代码即可运行模型,而且还提升了类型安全性。 我们先说说如何导入TFLite模型并使用,然后再来解释是如何做到的。 导入模型文件 按照如下步骤即可导入TFLite模型: 新建或打开现有Android项目工程。 通过菜单项 File > New > Other > TensorFlow Lite Model 打开TFLite模型导入对话框。 Android Studio菜单 选择后缀名为.tflite的模型文件

Android/iOS内嵌Unity开发示例

空扰寡人 提交于 2020-10-23 08:40:10
Unity 与 Android/iOS 交叉开发主要有两种方式,以 Android 为例,一是 Android 生成 jar 或者 aar 包,导入到 unity3d plugin/bin/ 目录下; 二是 Unity 导出 Android 工程,在 Android Studio 中作为库继续开发 。网上的教程几乎全是第一种方式,而本文主要分析第二种方式。 这种方式可以在移动端的 NativeApp 中以,库的形式集成已经写好的 Unity 工程,利用 Unity 游戏引擎便捷的开发手段进行跨平台开发。 Unity官方文档 Unity as a Library integration example to iOS and Android 以下以安卓平台作为示例。 环境 Android Studio 3.5.3 Unity version 2019.3.7f1 新建工程 Android Studio 新建项目: Unity 新建项目: 最终工程结构如下: Unity导出 通过 Unity 打开 UnityProject 选择 File -> Build Settings -> Switch Android Platform -> Export Project 这时候选择Export可能会提示JDK路径配置出错,没关系我们到 Preference -> Externl Tools

Error-Prone Java静态代码分析利器

[亡魂溺海] 提交于 2020-10-22 10:08:45
是什么 静态的Java和Android bug分析利器 由Google出品 由error-prone接管compiler,在代码编译时进行检查,并抛出错误中断执行 在抛出错误的同时给出具体的原因和相应方案 error-prone github 地址为 https://github.com/google/error-prone 举几个例子 private void testCollectionIncompatibleType() { Set<Short> set = new HashSet<>(); set.add(Short.valueOf("1")); set.remove(0); } 上面的代码中 set是一个接受Short类型的集合 我们想通过类似从List.remove(index)方式删除一个元素 但是Set没有remove(index)方法,有的只是remove(Object)方法,普通编译器不会报错,而error-prone则会发现 报出的错误信息为 /ErrorProneSample/app/src/main/java/com/example/jishuxiaoheiwu/errorpronesample/MainActivity.java:24: error: [CollectionIncompatibleType] Argument '0' should not

解决Emulator: dsound: Could not initialize ADC

旧时模样 提交于 2020-10-22 08:54:19
Emulator: dsound: Could not initialize ADC 今天在Android Studio运行虚拟机的时候发现运行异常,异常内容如下图。 异常内容 解决方案 在网上看到的一些解决方案是开启被禁用的立体声音混合,如下图所示。 1.右键电脑声音,打开录制 ; 2.右键显示显示禁用的设备,接着右键启用已停用的立体声混音。 楼主尝试过后发现异常报告依然存在,如果有一样情况的朋友,请打开电脑的隐私设置里面的麦克风。选择 开启 应用访问你的麦克风。 最后再次运行android虚拟机,不再产生异常报告,如图所示。 来源: oschina 链接: https://my.oschina.net/u/4407552/blog/4683727