作者 / Android 产品经理 Diana Wong 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、 隐私和安全 ,本期将聚焦 Android 11 兼容性 。 Android 11 兼容性 本期我们将重点探讨 Android 11 兼容性这一对所有开发者都非常重要的主题。 例如,我们已将包含在兼容性框架内的变更设为可切换,您可以通过设备的开发者选项或使用 Android ADB 强制启用或停用单个变更。 从 Android Studio 4.2 开始,我们实现了在多个实体或虚拟设备上并行运行插桩测试 (instrumentation tests)。 现在,您可以在运行测试的过程中,从目标设备下拉菜单中选择 多个设备 。 ? 此功能旨在帮助您在开发周期中尽早发现问题,并让您能够比较不同 Android 设备之间的差异。
(tm == null) { return ""; } return tm.getNetworkOperator(); } //android getPhoneModel(Context context) { Build bd = new Build(); return bd.MODEL; } //android getPhoneProduct(Context context) { Build bd = new Build(); return bd.PRODUCT; } //android int h = dm.heightPixels; int w = dm.widthPixels; return h+ "*" +w; } //android String s = tz.getID(); System.out.println(s); return s; } //android
今天有个朋友要获取Android手机当前连入网络的ip,问我怎么做,我一想这还不简单。
在请求弹框还能看到始终允许,Android 11中,取消了始终允许选项,默认不会授予后台访问设备位置信息的权限。 Android 11将后台获取设备位置信息抽离了出来,通过ACCESS_BACKGROUND_LOCATION权限后台访问设备位置信息的权限,需要注意的一点是,请求ACCESS_BACKGROUND_LOCATION " /> </manifest> 永久SIM标识符 从Android 11开始,通过 getIccId() 方法访问不可重置的ICCID受到限制,该方法会返回一个非空的空字符串,要唯一标识设备上安装的SIM 除非设备恢复出厂设置,否则此标识符对于SIM是不变的。 Toast 从Android 11开始 ,从后台发送自定义view的Toast消息系统会进行屏蔽。前台使用不受影响。 11开始,仅通过v1签名的应用无法在Android 11的设备上安装或更新,必须使用v2或更高版本进行签名。
区块链的真实数据依赖于物联网和智能设备,记一次折腾的android无线调试经历。 Android 4.2.2定制版智能硬件, USB口能插鼠标键盘, 但是不能USB调试。 搜索android无线调试, 基本都需要第一次USB调试线, adb tcpip 5555开启android设备端口监听, 之后adb connect ip port。 有些好奇为什么那些android模拟器, 游戏模拟器可以直接debug, adb connect可以直接连过去, android x86还有快捷键直接进入shell, 应该是启动了一个adbd的debug 先装个手机版的shell, JuiceShell吧, 看能不能启动, 不行就把设备ROOT了。 shell执行su, 切换到了root账户, 好像设备是默认给root了。 .android\adbkey.pub 拷贝为adb_keys, 重启adbd, 使用adb connect连接一次, connected.
作者 / Android Jetpack 产品经理 Diana Wong 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、隐私和安全 、 Android 11 兼容性 我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。 重要更新 2018 年,我们推出了 Android Jetpack,帮助开发者遵循最佳做法、减少样板代码,并编写可以在不同 Android 版本和设备中运行的代码。 要全面了解 Jetpack 的新功能,您可以查看我们在 #Android11 发布中的 相关演讲,我们简要介绍了 Jetpack 库的许多更新,并提供了相应的入门指南。 聚焦权限 在 Android 11 中,我们一直致力于让用户对敏感权限有更多控制。同时,让各位开发者尽可能轻松地构建 Android 应用也是我们工作的一大重点。
① 大数据统计,比如采集这个APP的安装量,那么一个唯一标识就代表一个Android设备 ② 放置多设备重复登录,比如QQ、微信,你在A手机登录了,如果又到B手机上登录,这时候A手机就会下线。 可惜的是Android平台并没有提供稳定的API来让我们获取到唯一设备ID。你可能要说IMEI和Mac地址可以获取到,但是它并不会适配Android的所有版本。 ,当然这个问题,你在可以使用的Android版本设备中运行是不会出现的。 android:text="获取设备序列号" /> <! 看到这里你就会问了,那现在Android9.0之后要怎么获取设备的唯一标识呢? 8. 解决方案 可以通过硬件标识来制作唯一设备id。
背景 最近在项目中着手做Android10和Android11 适配时候,期间遇到了不少的坑。之前有专门写过qq、微信分享的适配。但是此次在针对偏业务侧适配工作的时候还是碰到了一些新的问题。 但是,这里有个坑: 在Android10上不行,在Android11上又可以!!为什么? 因为Google改回来了,让Android11支持file://格式了。。。。 (wtf? 最后,我还想问两个问题: 1. targetSdk=30,android:requestLegacyExternalStorage="false"运行在Android10的设备上 会咋么样? 因为,Android10的设备还是以Android10的兼容模式运行的。所以要改成true。 2. targetSdk=30,android:requestLegacyExternalStorage="false"运行在Android11的设备上 会咋么样?
Android11 无Root 访问data目录 实现 正文开始 关于Android11权限变化 作为普通安卓用户该如何方便快速地访问Android/data目录 开发者该如何实现无ROOT访问Data 解决方案 SAF方案缺点 放大招,ROOT权限直接解锁后带权访问Data目录 结语 封装好的工具类 正文开始 关于Android11权限变化 谷歌在Android11及以上系统中采用了文件沙盒存储模式, 我实现的文件管理(Android11上直接免root管理data目录) 重要的坑:为什么不直接使用路径Path来实现文件浏览呢? 我也这样觉得的,在我当时在对Android11进行适配的时候为了改动小,肯定是想用这个方法来进行适配,但是根本行不通! 我们不是获取了Android/data目录的权限了吗? 这个Android11上Android/data受限后,我觉得这个是很好的解决方案了,毕竟可以实现无Root访问并实现管理。
HarmonyOS设备还可以当Android设备用,你赚到了 既然HarmonyOS内置了Android系统,那么同样也可以将HarmonyOS设备当做Android设备来用。 由于HarmonyOS与Android共用一个设备,所以就相当于控制HarmonyOS设备了。 例如,用adb devices命令会列出当前环境连接了多少部HarmonyOS设备(当然,也包括Android设备),例如,下图列出了3个设备,前两个是HarmonyOS设备,最后一个是Android设备 其实从这个列表中根本看不出来哪一个是HarmonyOS设备,哪一个是Android设备。 其实从本质上,他们都应该属于Android设备,只是前两个设备的Android来至于HarmonyOS的内置Android,而最后一个来至于纯的Android。 ?
作者 / Android 产品经理 Jamal Eason 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、隐私和安全 、 Android 11 兼容性 、 开发语言 重要更新 11 Weeks of Android 期间,我们在 Android Studio 中推出了一系列开发者工具更新。 视频与文档资源 如要查看 Android Studio 近期版本中有关 Android 开发者工具新增功能的概况,请观看 #Android11 发布会中精彩而又深入的演示。 (例如 5G 连接和对可折叠设备的支持),以及将其运用到日常开发工作流中的其他优势。 Compose 编辑支持 测试失败保留 Android 模拟器 - 对 5G 连接和可折叠设备的支持 Intellij 2020.2 - 即将推出 更多资讯 您可以查看 #11WeeksOfAndroid
作者 / 产品经理 David Winer 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份、隐私和安全、 Android 11 兼容性 ,本期将 聚焦语言 。 在 Android 11 测试版中,我们决定正式推荐使用协程 (coroutines) 在 Android 上执行异步操作,以此来进一步拥抱 Kotlin。 在 Android 11 中,我们力求不断改进对这两种语言的支持。在 Android 11 Beta 中,我们使用来自 OpenJDK 9、10 和 11 的许多新 API 升级了 Java 库支持。 我们还在 Android Studio 4.0 中推出了 Java 库 "脱糖",这样一来,即使在较低版本的 Android 设备上也可以轻松使用许多较新的 Java API。 想对那些要求在较低版本的设备上支持 java.time 的开发者说,我们听到了大家强烈的呼声,并且已经实现。
-11.0.0_r17 repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-11.0.0_r17 同步源码 bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig 3.2 驱动下载 参考https://source.android.google.cn 2021-06-27 16-54-57 的屏幕截图.png 下载地址:https://developers.google.cn/android/drivers ? 8. aosp_car_arm64-userdebug 9. aosp_car_x86-userdebug 10. aosp_car_x86_64-userdebug 11
end method 2.smali文件转dex(或者打包成Apk也一样) java -jar smali-2.4.0.jar a smali文件或目录 -o 输出目录/xxx.dex 3.将dex传至android 设备中(真机或者模拟器) adb push test.dex /sdcard/ 4.调用Dalvik VM执行代码 adb shell dalvikvm -cp /sdcard/test.dex Test
本文介绍了有关Android可穿戴设备及其功能的明确概念。本文将详细介绍 Wear 平台中 Android 应用程序开发的高级概述。 需要运行 Android 4.3 或更高版本的移动设备,或者 iOS 8.2 或更高版本的移动设备,并且支持有限,才能与这些手表配对。 图2:数学游戏的最终输出 此外 将磨损模拟器与 Android 设备连接 让我们将我们的磨损模拟器与我们真实的安卓设备(手机/平板电脑)连接起来。 图1:保持USB调试开启 现在从 Google Play 下载 Android Wear 应用程序并将其安装到您的设备上。安装后,将设备连接到计算机并打开命令窗口。 打开设备的蓝牙连接并将其与磨损模拟器配对。配对过程完成后,您将在设备佩戴应用程序上看到此窗口。 图 3:与仿真器连接的设备。
作者 / Chet Haase, Android 开发技术推广工程师 欢迎大家来到 Now in Android 栏目,本栏目将专注于为开发者们提供近期值得关注的 Android 开发热点内容。 请务必跟上 Android 10 ? 我们在 Android 10 预览版阶段收到了有关 API 和功能的重要反馈,并且得以在发布最终版之前进行改进。 毕竟,大多数 Android 项目都是已经成型的代码库,而 Android SDK 是一组 Java API,因此,不同语言之间的流畅集成非常重要。 视图绑定从 Android Studio 3.6 Canary 11 可以开始体验。 在我们近期连载发布 2019 Android 开发者峰会中文视频中也有一个关于分区存储的演讲,分享了一些最新的更新和接下来 Android 版本里的改变。
# setprop service.abd.tcp.port 5555
本教程将向您展示如何: 设置您的 Android 设备进行远程调试,并从开发计算机上发现设备。 从您的开发计算机检查和调试 Android 设备上的实时内容。 确保设备管理器报告正确的 USB 驱动程序 拥有一根可以将您的 Android 设备连接至开发计算机的 USB 电缆。 Android 4.0 或更高版本。 您的 Android 设备上已安装 Chrome(Android 版)。 第 2 步:从您的开发计算机调试 Android 设备上的内容。 如果您尚未在 Android 设备上打开 Chrome,则现在打开它。 返回 DevTools,点击与设备的型号名称匹配的标签。 如果您的 Android 设备屏幕锁定,您的抓屏内容将消失。 将您的 Android 设备屏幕解锁可自动恢复抓屏。
保持设备唤醒 为了避免电量过度消耗,Android设备会在被闲置之后迅速进入睡眠状态。然而有时候应用会需要唤醒屏幕或者是唤醒CPU并且保持它们的唤醒状态,直至一些任务被完成。 另外一种方法是在应用的XML布局文件里,使用android:keepScreenOn属性: <RelativeLayout xmlns:android="http://schemas.android.com /apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true"> ... ---- 保持CPU运行 如果你需要在设备睡眠之前,保持CPU运行来完成一些工作,你可以使用PowerManager系统服务中的唤醒锁功能。唤醒锁允许应用控制设备的电源状态。
虽然Android系统中提供了这样设备识别码,但是由于Android系统版本、厂商定制系统中的Bug等限制,稳定性和唯一性并不理想。 (), Settings.System.ANDROID_ID); ANDROID_ID可以作为设备标识,但需要注意: 厂商定制系统的Bug:不同的设备可能会产生相同的ANDROID_ID:9774d56d682e549c 从目前发展来看,Android系统多版本共存还会持续较长的时间,而Android系统也不会被某个设备生产厂商垄断,长远看Android基础系统将会趋于稳定,设备标识也将会作为系统基础部分而标准化,届时这一问题才有望彻底解决 ANDROID_ID ANDROID_ID是设备第一次启动时产生和存储的64bit的一个数,当设备被wipe后该数重置 ANDROID_ID似乎是获取Device ID的一个好选择,但它也有缺陷: 它在Android <=2.1 or Android >=2.3的版本是可靠、稳定的,但在2.2的版本并不是100%可靠的 在主流厂商生产的设备上,有一个很经常的bug,就是每个设备都会产生相同的ANDROID_ID