精华内容
下载资源
问答
  • 安卓8新特性
    2021-05-28 01:02:56

    在大多数人还没使用到安卓8.0的时候,谷歌又悄然发布了安卓8.1系统,并在自己手机上安装了该系统,那么Android8.1有什么新特性呢,我们一起来看看10254689_bce59e81cfcc0d9b_600_0_thumb.jpg

    谷歌日前在官方博客中发文讲解Pixel 2的视觉核心,包括图像处理和机器学习。 其中提到,在未来几周谷歌将会发布Android 8.1(MR1)的开发者预览版本 。

    谷歌表示,Android8.1系统中会把Pixel视觉核心的开启与关闭置于开发者选项内。之后,使用Android相机API的第三方拍摄APP也会加入Pixel 2的HDR+技术。

    也就是说,Pixel 2专属的HDR+技术将会被下放到Pixel、Pixel XL、Nexus 6P、Nexus 5X等机型中去。

    对于没有这颗定制图像芯片的安卓手机来说,谷歌也在Android 8.1系统中提供了让手机拍照实力提升的办法,比如系统深度底层对白平衡等算法优化。

    对于Pixel 2手机来说,在安卓8.1系统加持下,第三方App就可以调用其相机设置,比如使用Pixel 2的HDR+技术等。

    值得一提的是,谷歌今天还表示,Android 8.1系统会在近期发布,除了提升手机的拍照实力外,续航依然是他们要努力的方向。

    至于Android8.1还有哪些更新暂时未知,不过可以预见的是,在界面交互和基础特性上Android8.1和Android 8.0区别不是很大。

    更多相关内容
  • 在大多数人还没使用到安卓8.0的时候,谷歌又悄然发布了安卓8.1系统,并在自己手机上安装了该系统,那么Android8.1有什么新特性呢,我们一起来看看谷歌日前在官方博客中发文讲解Pixel 2的视觉核心,包括图像处理和...

    在大多数人还没使用到安卓8.0的时候,谷歌又悄然发布了安卓8.1系统,并在自己手机上安装了该系统,那么Android8.1有什么新特性呢,我们一起来看看

    6496e9a5bcbf66fa48de0a8cef32f2fd.png

    谷歌日前在官方博客中发文讲解Pixel 2的视觉核心,包括图像处理和机器学习。 其中提到,在未来几周谷歌将会发布Android 8.1(MR1)的开发者预览版本 。

    谷歌表示,Android8.1系统中会把Pixel视觉核心的开启与关闭置于开发者选项内。之后,使用Android相机API的第三方拍摄APP也会加入Pixel 2的HDR+技术。

    也就是说,Pixel 2专属的HDR+技术将会被下放到Pixel、Pixel XL、Nexus 6P、Nexus 5X等机型中去。

    Android 8.1的主要新功能点有:

    1、神经网络API(NNAPI),提供机器学习的硬件加速。

    2、通知:通知消息现在每秒仅能发出一次提示音。

    3、改善2G以下内存设备的表现

    4、自动填充功能针对APP进行优化,提供验证器判断是否响应

    5、文本编辑更新

    6、程序性的安全浏览行为:允许APP对浏览行为进行安全检测、规避威胁

    7、视频缩略图生成更精准

    8、共享内存API:Android 8.1(API级别27)引入了一个新的SharedMemory类。这个类允许您创建、映射和管理匿名共享内存,被多个进程或应用程序使用。

    9、壁纸色彩管理API

    10、指纹更新

    12a764c51ea9cd7f3b86186a8c1324dd.png

    展开全文
  • Android 7.0新特性详解

    2020-08-30 23:33:20
    本篇文章主要介绍了Android 7.0(牛轧糖)新特性的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
  • Android8.0新特性解读

    千次阅读 2018-07-03 15:54:08
    背景 Google在2017年的I/O...可能有的小伙伴会问了,的系统都更新一年了,怎么现在才做特性解读?咳咳,要知道,国内的大环境与国外不一样,Google去年8月发布的系统,到国内的厂商在设备上使用最新的系统...

     背景 


    Google在2017年的I/O开发者大会上发布了Android8.0开发者预览版,取名为Android O;同年8月,Google正式发布了Android8.0正式版,并正式取名为Android Oreo(奥利奥);


    可能有的小伙伴会问了,新的系统都更新一年了,怎么现在才做特性解读?


    咳咳,要知道,国内的大环境与国外不一样,Google去年8月发布新的系统,到国内的厂商在设备上使用最新的系统,此时间周期为6-10个月,所以,现在做特性解读,一切都刚刚好


    好的,接下来,我们看看Android O有哪些新特性吧!



     特性 


    1、通知中心(Notification Channels

    通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对不同种类的通知进行精细控制,用户可以单独拦截或更改每个渠道的行为,而不是统一管理应用的所有通知。

      


    2、画中画模式(Picture In Picture)

    Android O 现已支持 Activity 的画中画模式。PIP 是一种多窗口显示模式,多用于视频播放,即你可以一边发微信一边看视频,只要在AndroidManifest.xml中设置android:supportsPictureInPicture为true即可;

    注意:

    (1)、处在画中画模式中的Activity会回调onPause方法,因此像播放视频类的应用,不要在onPause中停止播放,而是在onStop方法中停止;

    (2)、在 Android O 中新增 PictureInPictureArgs 对象来指明你的 Activity 在 PIP 模式中的属性,比如长宽比等;

    (3)、新增了如下方法来支持 PIP:

                Activity.enterPictureInPictureMode(PictureInPictureArgs args):将Activity置于 PIP 模式之下;

                Activity.setPictureInPictureArgs():用于更新 Activity 在 PIP 模式下的设置。如果 Activity 正处于 PIP 模式之下,那么更改的属性将立即生效。


    3、自适应图标(Adaptive Icons)

    Android O 支持创建自适应图标,系统可以基于设备选择的蒙版将这些图标显示为不同形状,这样一来,就能在不同的设备型号上显示不同的图标形状;


    4、固定快捷方式和小部件(Pinning shortcuts)

    安卓创造出了PinnedShortcuts功能,类似苹果的3DTouch,长按一个软件后可以弹出子菜单,然后就可以通过这个方式快捷的使用该应用的部分功能,Pinning shortcuts 在桌面上可呈现不同的图标显示;


    5、自动填写(Auto-Fill)

    对于用户设备上最常用的应用,Android O将会帮助用户进行快速登录,而不用每次都填写账户名和密码;当用户使用一个新设备时,可以从Chrome中提取已经保存的账户名和密码,选择之后,自动填充功能便可以在本地进行,适用于你可能用到的大多数应用程序;

    自动填充服务设置位于设置 -> 系统 -> 语言和输入法 -> 输入帮助 下

    默认使用 Google 提供的 Smart Lock(密码专用)填充服务。


    6、限制后台行为

    Android 8.0 引入了新的后台限制特性,不仅仅适用于面向 Android 8.0 开发的应用

    具体而言,只要某个应用在 Android 8.0 上出现进行过后台活动(可通过第一部分提到的「后台应用提醒」通知判断),在它的应用详情界面就会出现一个后台活动限制选项;

    以微信为例,如果你想利用 Android 8.0 自带的后台限制功能来限制微信的后台活动,只需前往设置 -> 应用和通知 -> 应用信息 中找到并打开微信的详情界面:

    在详情界面中,点击 电池 选项打开 电池用量界面,在电池用量 界面的 管理电池用量 下即可看到 后台活动 开关;关闭后台活动后,微信的后台活动就将受到限制。

    7、Notification Dots

    在Android O中,谷歌对安卓的通知功能做出了改进,这就是全新的Notification Dots功能,它是位于应用程序图标之上的小小的循环点,只有当应用出现未读通知时,它才会出现。这时候长按应用程序图标,就会以类似气泡的形式快速预览。而在通知中心中删除这些未读通知,应用图标上的标记点也会消失;


    8、其他

    在性能方面,Android O进行了系统优化,后台占用资源减少,大部分应用的启动速度会快上一倍,并且对并发进程等问题处理更加出色;

    Android O中谷歌增加了对系统字体的支持,开发者可以自行更改字体样式,让用户有了更多字体的选择;

    Android O加入全新emoji表情,设计更加向ios靠拢;



     结语 


    好了,这就是今天对Android8.0系统新增特性的分享,注意,只是一部分哦,有很多用户感知度不高的更新,就没有一一列举啦,各位有兴趣的小伙伴,可以访问Google中国开发者网站:https://developers.google.cn/china/,查询8.0详细行为变更。



    如果喜欢,请扫描二维码关注

    每天定时更新Android相关内容

    有清蒸的、红烧的、爆炒的等等

    还可以留言共同进行探讨问题

    期待您的关注!!!




    展开全文
  • Android各版本新特性

    千次阅读 2022-01-06 15:15:41
    Android 各版本新特性 一:介绍 我们可以看到Android版本对应的Api版本二:Android 6.0 Google I/O 2015大会如约已于2015年5月28日举行。在发布会上代号为“Marshmallow(棉花糖)”的安卓6.0系统正式推出。 ...

    Android 各版本新特性

    一:介绍
    我们可以看到Android版本对应的Api版本

    二:Android 6.0
    Google I/O 2015大会如约已于2015年5月28日举行。在发布会上代号为“Marshmallow(棉花糖)”的安卓6.0系统正式推出。
    Android 6.0 的API级别:23
    新特性:
    1.运行时权限(最主要)
    此版本引入了一种新的权限模式,用户可直接在运行时管理应用权限。
    对于以 Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否已被授予权限,请调用新增的 checkSelfPermission() 方法。要请求权限,请调用新增的 requestPermissions() 方法。即使您的应用并不以 Android 6.0(API 级别 23)为目标平台,您也应该在新权限模式下测试您的应用。
    2.取消支持Apache HTTP客户端
    Android 6.0版本移除了对Apache HTTP客户端的支持。
    如果您的应用使用该客户端,并以 Android 2.3(API 级别 9)或更高版本为目标平台,请改用 HttpURLConnection 类。此 API 效率更高,因为它可以通过透明压缩和响应缓存减少网络使用,并可最大限度降低耗电量。要继续使用 Apache HTTP API,您必须先在 build.gradle 文件中声明以下编译时依赖项:
     

    android {
        useLibrary 'org.apache.http.legacy'//使用Apache库
    }

    三:Android 7.0
    Android 7.0是Google推出的智能手机操作系统,官方代号为“Nougat”(牛轧糖)。于2016年5月18-20日(美国西部时间)在Google I/O开发者大会上正式发布,发布地点是山景城的Shoreline Ampitheatre圆形剧场
    Android 7.0 包括旨在延长设备电池寿命和减少 RAM 使用的系统行为变更。这些变更可能会影响您的应用访问系统资源,以及您的应用通过特定隐式 intent 与其他应用交互的方式。
    新特性:
    1.低电耗模式
    Android 6.0引入了低电耗模式,当用户设备未插接电源,处于静止状态且屏幕关闭时,该模式会推迟 CPU 和网络活动,从而延长电池寿命。而 Android 7.0 则通过在设备未插接电源且屏幕关闭状态下、但不一定要处于静止状态(例如用户外出时把手持式设备装在口袋里)时应用部分 CPU 和网络限制,进一步增强了低电耗模式。
    2.系统权限的更改
    为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问 (0700)。此设置可防止私有文件的元数据泄漏,如它们的大小或存在性。此权限更改有多重副作用
    传递软件包网域外的 file:// URI 可能给接收器留下无法访问的路径。因此,尝试传递 file:// URI 会触发 FileUriExposedException。分享私有文件内容的推荐方法是使用 FileProvider。
    Android7.0之前访问系统相册

     File file = new File(Environment.getExternalStorageDirectory(), "/temp/" + 
     System.currentTimeMillis() + ".jpg");
     if (!file.getParentFile().exists()) file.getParentFile().mkdirs();
     Uri imageUri = Uri.fromFile(file);
     Intent intent = new Intent();
     //设置Action为拍照
     intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
     //将拍取的照片保存到指定URI
     intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
     startActivityForResult(intent, 1);

    在7.0之后的话访问相册会报如下错误:
    android.os.FileUriExposedException: file:///storage/emulated/0/temp/1627010812423.jpg exposed beyond app through ClipData.Item.getUri()
    在Android7.0系统上,Android 框架强制执行了 StrictMode API 政策禁止向你的应用外公开 file:// URI。 如果一项包含文件 file:// URI类型 的 Intent 离开你的应用,应用失败,并出现 FileUriExposedException 异常,如调用系统相机拍照,或裁切照片。
    解决方法:
    第一步:在清单文件AndroidManifest.xml中注册provider

     <provider
      android:name="androidx.core.content.FileProvider"//非androidx下 
      android:name="android.support.v4.content.FileProvider"
      android:authorities="com.ruan.mygitignore.fileprovider"//包名.fileprovider
      android:exported="false"
      android:grantUriPermissions="true">
        <meta-data
           android:name="android.support.FILE_PROVIDER_PATHS"
           android:resource="@xml/file_path" />
     </provider>

    参数解释:

    • name:是固定的
    • android:authorities推荐写您的应用包名+“.fileprovider”,其实这里不一定要写fileprovider,您也可以随便写,只要与后面使用FileProvider.getUriForFile()这个方法中的第二个参数authority对应起来即可;(URI uri = FileProvider.getUriForFile(context, "com.ruan.mygitignore.fileprovider", file);)
    • android:grantUriPermissions固定true,表示uri访问授权;
    • android:exported固定的false,我试着写了true报安全异常。
    • android:resource表示我们app要共享文件的路径的资源文件。

    第二步:res文件夹下,新建一个xml文件夹,名字就是上一步 android:resource=”@xml/file_paths”对应的内容

    • 命名为“file_paths”(名字可以随便起,只要和第一步中在manifest注册的provider所引用的resource保持一致即可)的资源文件。
    • 上述代码中 path=”“,是有特殊意义的,它指的是根目录,也就是说您可以向其它的应用访问根目录及其子目录下任何一个文件了,如果您将path设为 path=”pictures”,那么它代表着根目录下的pictures目录(eg:/storage/emulated/0/pictures),这时您访问pictures目录范围之外的文件是不行的。
    • files-path代表的根目录: Context.getFilesDir()
    • external-path代表的根目录: Environment.getExternalStorageDirectory()
    • cache-path代表的根目录: getCacheDir()

    第三步:使用FlieProvider

     /*
         *相册,选择一张图片
         */
      private void getPhoto(Context context) {
            // 这里用时间命名是发现用固定名命名后第二次裁剪图片任然是第一次的图,没有覆盖上一次图片资源;7.0之前固定名会替换
            File file = new File(Environment.getExternalStorageDirectory(), "/temp/" + System.currentTimeMillis() + ".jpg");
            if (!file.getParentFile().exists()) file.getParentFile().mkdirs();
            // 通过FileProvider创建一个content类型的Uri
            Uri imageUri = FileProvider.getUriForFile(context, "com.ruan.mygitignore.fileprovider", file);
            Intent intent = new Intent();
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            // 设置Action为拍照
            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
            // 将拍取的照片保存到指定URI
            intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
            // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_GALLERY
            startActivityForResult(intent, 1);
             System.out.println(imageUri);
        }
        
        //结果
     System.out: content://com.ruan.mygitignore.fileprovider/Camera/temp/1627018704311.jpg   

    最简单的以打开相机为例:

       File file = new File(Environment.getExternalStorageDirectory(), "/temp/" + System.currentTimeMillis() + ".jpg");
    
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    
                    if (Build.VERSION.SDK_INT >= 24) {
                        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                        //24以上使用FileProvider
                        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                                FileProvider.getUriForFile(FiveTeenActivity.this, "com.ruan.mygitignore.fileprovider", file));
                    }else{
                        //24以下
                        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
                    }
                    startActivityForResult(intent, 1);

    1、将之前Uri的scheme类型为file的Uri改成了有FileProvider创建一个content类型的Uri。
    2、添加了intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);来对目标应用临时授权该Uri所代表的文件。

    四:Android 8.0
    2017年8月22日,谷歌正式发布了Android 8.0的正式版,其正式名称为:Android Oreo(奥利奥) 。2017年12月5日谷歌正式发布了Android 8.1的正式版。
    新特性:
    1.通知渠道 — Notification Channels
    通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对不同种类的通知进行精细控制,用户可以单独拦截或更改每个渠道的行为,而不是统一管理应用的所有通知。
    创建通知渠道的步骤:

    • 创建 NotificationChannel 对象,并设置应用内唯一的通知 ID。
    • 配置通知渠道的属性,比如提示声音等。
    • 在 NotificationManager 中注册通知渠道对象。

      2、画中画模式 — PIP
      Android O 现已支持 Activity 的画中画模式。PIP 是一种多窗口显示模式,多用于视频播放。这和普通的画中画分屏模式并不相同。这一功能的唤醒只需要点击Home键按钮,如果想结束这一模式,可以将小窗口滑下来以终止。
      关于生命周期
      PIP 模式不会改变 Activity 的生命周期。在指定时间只有最近与用户交互过的 Activity 为活动状态。 该 Activity 将被视为顶级 Activity。 所有其他 Activity 虽然可见,但均处于暂停状态。当一个 Activity 处于 PIP 模式时,其实它是出在暂停状态,但其内容会继续展示。
      API变更
      在 Android O 中新增 PictureInPictureArgs 对象来指明你的 Activity 在 PIP 模式中的属性,比如长宽比等。
      Android O 还新增了以下方法来支持 PIP。
      Activity.enterPictureInPictureMode(PictureInPictureArgs args):将Activity置于 PIP 模式之下。
      Activity.setPictureInPictureArgs():用于更新 Activity 在 PIP 模式下的设置。如果 Activity 正处于 PIP 模式之下,那么更改的属性将立即生效。
      

    五:Android 9.0
    Android 9.0是谷歌研发的移动端操作系统,开发代号为“Pie”(派),于2018年8月7日正式发布
    1.利用wifi RTT 进行室内定位
    Android 9 添加了对 IEEE 802.11mc Wi-Fi 协议(也称为 Wi-Fi Round-Trip-Time (RTT))的平台支持,从而让您的应用可以利用室内定位功能。

    在运行 Android 9 且具有硬件支持的设备上,应用可以使用 RTT API 来测量与附近支持 RTT 的 Wi-Fi 接入点 (AP) 的距离。 设备必须已启用位置服务并开启 Wi-Fi 扫描(在 Settings > Location 下),同时您的应用必须具有 ACCESS_FINE_LOCATION 权限。

    设备无需连接到接入点即可使用 RTT。 为了保护隐私,只有手机可以确定与接入点的距离;接入点无此信息。

    如果您的设备测量与 3 个或更多接入点的距离,您可以使用一个多点定位算法来预估与这些测量值最相符的设备位置。 结果通常精准至 1 至 2 米。

    通过这种精确性,您可以打造新的体验,例如楼内导航、基于精细位置的服务,如无歧义语音控制(例如,“打开这盏灯”),以及基于位置的信息(如 “此产品是否有特别优惠?”)。
    2.显示屏缺口支持
    Android 9 支持最新的全面屏,其中包含为摄像头和扬声器预留空间的屏幕缺口。 通过 DisplayCutout 类可确定非功能区域的位置和形状,这些区域不应显示内容。 要确定这些屏幕缺口区域是否存在及其位置,请使用 getDisplayCutout() 函数。


    全新的窗口布局属性 layoutInDisplayCutoutMode 让您的应用可以为设备屏幕缺口周围的内容进行布局。 您可以将此属性设为下列值之一:
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
    可以按以下方法在任何运行 Android 9 的设备或模拟器上模拟屏幕缺口:

     

     

    启用开发者选项。
    在 Developer options 屏幕中,向下滚动至 Drawing 部分并选择 Simulate a display with a cutout。
    选择屏幕缺口的大小。
    注:我们建议您通过使用运行 Android 9 的设备或模拟器测试屏幕缺口周围的内容显示。
    3.前台服务
    如果应用以 Android 9 或更高版本为目标平台并使用前台服务,则必须请求 FOREGROUND_SERVICE 权限。这是普通权限,因此,系统会自动为请求权限的应用授予此权限。

    如果以 Android 9 或更高版本为目标平台的应用尝试创建前台服务且未请求 FOREGROUND_SERVICE,则系统会抛出 SecurityException。

    public class FloatPasswordWindowService extends Service {
    
     @Override
        public void onCreate() {
            super.onCreate();
           
        }
          @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            LogUtils.d("FloatWindowService:onBind");
            return null;
        }
        
         @Override
      public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(TAG, "onStartCommand()");
        // 参数一:唯一的通知标识;参数二:通知消息。
    startForeground(110, notification);// 开始前台服务
      }
      
      @Override
    public void onDestroy() {
      Log.d(TAG, "onDestroy()");
      stopForeground(true);// 停止前台服务--参数:表示是否移除之前的通知
      super.onDestroy();
    }
    }

    9.0 要求创建一个前台服务需要请求 FOREGROUND_SERVICE 权限,否则系统会引发 SecurityException。

    Intent intentService = new Intent(this, MyService.class);
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        startForegroundService(intentService);//开启前台服务
    } else {
        startService(intentService);
    }

    PS:表忘记AndroidManifest.xml中添加FOREGROUND_SERVICE权限

    //9.0这个前台服务权限不要忘了
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

    4.启动Activity
    在9.0 中,不能直接非 Activity 环境中(比如Service,Application)启动 Activity,否则会崩溃报错。
    这类问题一般会在点击推送消息跳转页面这类场景,解决方法就是 Intent 中添加标志FLAG_ACTIVITY_NEW_TASK

    Intent intent = new Intent(this, TestActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

    5.Http请求
    请查看文章   Android9.0 Http请求异常icon-default.png?t=LBL2https://segmentfault.com/a/1190000038908791
    6.Apache HTTP 客户端弃用
    在 Android 6.0 时,就已经取消了对 Apache HTTP 客户端的支持。从 Android 9.0 开始,默认情况下该库已从 bootclasspath 中移除。但是耐不住有些SDK中还在使用,比如我见到的友盟QQ分享报错问题。
    所以要想继续使用Apache HTTP,需要在应用的 AndroidManifest.xml 文件中添加:

    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:networkSecurityConfig="@xml/network_security_config"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Theme.MyGitignore">
    
    <uses-library android:name="org.apache.http.legacy" android:required="false"/>//使用这个
    <application/>

    六:Android 10
    Android 10包含多项功能升级,包括手势导航、通知栏管理、全局黑暗模式等等,通知管理新增了“优先”、“无声”和“自适应通知”三种功能,新增深色主题的背景
    1.用户存储权限的变更
    Android Q 在外部存储设备中为每个应用提供了一个“隔离存储沙盒”(例如 /sdcard)。任何其他应用都无法直接访问您应用的沙盒文件。由于文件是您应用的私有文件,因此您不再需要任何权限即可在外部存储设备中访问和保存自己的文件。此变更可让您更轻松地保证用户文件的隐私性,并有助于减少应用所需的权限数量。
    谷歌官方推荐应用在沙盒内存储文件的地址为Context.getExternalFilesDir()下的文件夹。比如要存储一张图片,则应放在Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)中。
    2.用户的定位权限的变更
    为了让用户更好地控制应用对位置信息的访问权限,Android Q 引入了新的位置权限 ACCESS_BACKGROUND_LOCATION。

    与现有的 ACCESS_FINE_LOCATION和 ACCESS_COARSE_LOCATION权限不同,新权限仅会影响应用在后台运行时对位置信息的访问权。除非应用的某个 Activity 可见或应用正在运行前台服务,否则应用将被视为在后台运行。
    与iOS系统一样,Q中也加入了后台位置权限ACCESS_BACKGROUND_LOCATION,如果应用需要在后台时也获得用户位置(比如滴滴),就需要动态申请ACCESS_BACKGROUND_LOCATION权限。

    当然如果不需要的话,应用就无需任何改动,且谷歌会按照应用的targetSDK作出不同处理:
    targetSDK <= P 应用如果请求了ACCESS_FINE_LOCATION或 ACCESS_COARSE_LOCATION权限,Q设备会自动帮你申请ACCESS_BACKGROUND_LOCATION权限。

    3.设备唯一标识符的变更
    从 Android Q 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE签名权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)。
    如果您的应用没有该权限,但您仍尝试查询标识符的相关信息,会返回空值或报错。
    设备唯一标识符需要特别注意,原来的READ_PHONE_STATE权限已经不能获得IMEI和序列。
    如果想在Q设备上通过使用以下代码获取设备的ID

    ((TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId()

    则执行以上代码会返回空值(targetSDK<=P)或者报错(targetSDK==Q)。且官方所说的READ_PRIVILEGED_PHONE_STATE权限只提供给系统app,所以这个方法行不通了。
    谷歌官方给予了设备唯一ID最佳做法,但是此方法给出的ID可变,可以按照具体需求具体解决。本文给出一个不变和基本不重复的UUID方法:

    public static String getUUID() {
        String serial = null;
        String m_szDevIDShort = "35" +
            Build.BOARD.length() % 10 + Build.BRAND.length() % 10 +
            Build.CPU_ABI.length() % 10 + Build.DEVICE.length() % 10 +
            Build.DISPLAY.length() % 10 + Build.HOST.length() % 10 +
            Build.ID.length() % 10 + Build.MANUFACTURER.length() % 10 +
            Build.MODEL.length() % 10 + Build.PRODUCT.length() % 10 +
            Build.TAGS.length() % 10 + Build.TYPE.length() % 10 +
            Build.USER.length() % 10; //13 位
    
        try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    serial = android.os.Build.getSerial();
                } else {
                    serial = Build.SERIAL;
                }
                //API>=9 使用serial号
                return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
            } catch (Exception exception) {
                //serial需要一个初始化
                serial = "serial"; // 随便一个初始化
          }
        //使用硬件信息拼凑出来的15位号码
        return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
    }

    七:Android 11
    Android 11正式版系统在2020年9月9日正式发布。系统主要增强了聊天气泡,安全性和隐私性的保护,电源菜单,可以更好的支持瀑布屏,折叠屏,双屏和 Vulkan 扩展程序等。
    新特性
    1.短信更新改进
    首先是聊天泡泡。与Facebook多年来在Android上提供的Messenger应用程序类似,Android 11优化了短信功能,提供更加友好的交互。同时,为了确保用户能尽快收到对方的消息,Android 11在通知阴影(Notification Shade)中引入了一个专门的对话部分,它将提供对用户正在进行的任何对话的即时访问。这一更新将有助于短信消息从其他通知中脱颖而出。
    2.电话号码相关权限
    Android 11 更改了您的应用在读取电话号码时使用的与电话相关的权限。

    其实就是两个API:
    TelecomManager 类中的 getLine1Number() 方法
    TelecomManager 类中的 getMsisdn() 方法

    也就是当用到这两个API的时候,原来的READ_PHONE_STATE权限不管用了,需要READ_PHONE_NUMBERS权限才行。
    3.现在需要 APK 签名方案 v2
    对于以 Android 11(API 级别 30)为目标平台,且目前仅使用 APK 签名方案 v1 签名的应用,现在还必须使用 APK 签名方案 v2 或更高版本进行签名。用户无法在搭载 Android 11 的设备上安装或更新仅通过 APK 签名方案 v1 签名的应用。

    如果你的targetSdkVersion修改到30,那么你就必须要加上v2签名才行。否则无法安装和更新。
    八:Android 12
    Android 12 重新发现了代号为 “Columbus”的功能,并且优化了触发问题,新的手势需要更加用力敲击背面。新的双击背面手势可以截取屏幕截图、召唤谷歌 Assistant、打开通知栏、控制媒体播放或打开最近的应用程序列表。
    1. AVIF图像支持

    1. 为了为您提供更高的图像质量和更有效的压缩,Android 12引入了对AV1图像文件格式(AVIF)的平台支持。AVIF是用于使用AV1编码的图像和图像序列的容器格式。与其他现代图像格式一样,AVIF利用了视频压缩中的帧内编码内容。与JPEG等较旧的图像格式相比,这可以显着提高相同文件大小的图像质量。
      AVIF(18.2kB)JPEG(20.7kB)
      2.前台服务优化
      前台服务是应用程序管理某些类型的面向用户任务的重要方式,但是如果过度使用,它们可能会影响性能,甚至导致应用程序中断。为了确保为用户带来更好的体验,对于以新平台为目标的应用,我们将从后台阻止前台服务启动。为了更轻松地从此模式过渡,我们在JobScheduler中引入了一个新的加急作业,该作业获得了较高的进程优先级,网络访问权限,并且可以在不考虑节电或节电的情况下立即运行。为了实现向后兼容,我们还在最新版本的Jetpack WorkManager库中内置了加急作业。。另外,为了减少用户的注意力,我们现在将某些前台服务通知的显示延迟最多10秒钟。这使短暂的任务有机会在显示通知之前完成
    展开全文
  • Android12新特性

    千次阅读 2021-02-21 10:26:28
    Android 12中,我们还致力于为您提供工具,以为用户打造出色的体验。首先从兼容的媒体转码之类的东西开始,它可以帮助您的应用使用最新的视频格式(如果您尚不支持它们),以及轻松地将丰富的内容(例如图像和...
  • 下面本文就来简单汇总一下Android 7.0新特性汇总,抢先了解下吧。Android 7.01、分屏多任务其实这个功能,之前不少厂商已经做了,而谷歌终于让7.0原生支持了它,从实际体验来看,户点击多任务按键后,长按其中一个...
  • Android版本新特性(6-12)

    千次阅读 2022-04-08 16:02:10
    安卓版本特性 Android6.0(简称为棉花糖) 2015年5月28日 1.主要有运行时权限(最主要的更新) 对于以 Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否...
  • 主要介绍了Kotlin 接口与 Java8 新特性接口,Kotlin的接口是可以包含属性声明。Kotlin默认的声明是fianl 和public的。Kotlin里嵌套的类默认并不是内部内,不包含对器外部类的隐式调用。下面我们来一起学习一下吧
  • 熟悉JDK8新特性和库对Android开发(基于Java语言)更加得心应手。 5. 熟悉JDK8新特性能方便进行Java底层开发,比如Spring MVC. 6. IDE目前基于轻便的VSCode开发说明, 也可以自行通过IDEAJ建立项目运行。
  • 主要为大家详细介绍了Android Studio3.0安装配置方法图文教程,以及Android Studio3.0新特性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了详解Android Studio 3.0的新特性与适配,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 【转】Android10 新特性

    千次阅读 2019-09-12 18:41:06
    前言 ...Android 开源项目 https://source.android.google.cn/ [外链图片转存失败(img-bv1ajjHb-1568284849887)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_pn...
  • 目录Android5.0新特性Android6.0新特性Android7.0新特性Android8.0(O)新特性Android9.0(P)新特性Android10.0(Q)新特性Android11.0(R)新特性 Android5.0新特性 MaterialDesign设计风格 支持64位ART虚拟机 5.0推出...
  • Android 10系统新特性解读

    万次阅读 2019-03-04 12:12:01
    概述 和往年一样,将于今年5月7日举办的谷歌 I/O 19大会上谷歌将发布首版Android Q ...至于正式版什么时候发布,按照惯例,会在8月或者9月发布稳定的版本供用户使用。 根据目前流出的关于 Android Q 新闻,特别是随...
  • Android studio 4.2新特性及升级异常

    千次阅读 热门讨论 2021-05-06 11:42:30
    2021.05.05 Android Studio 4.2发布,其中包含各种功能和改进。并对更新后发现的异常进行解释和处理。
  • Android 9.0 最完整的新特性列表

    万次阅读 2019-07-15 18:02:00
    不管你是否已经更新了你的Android版本,当你运行Android9时,你终究会看到大量的功能,下面列出了其中最炫酷的25个新特性。 1.自适应电池 如果你在Android6中使用了休眠功能,它会让所有的应用程序都休眠,而...
  • Android 10正式版发布,看看都有哪些新特性

    万次阅读 多人点赞 2019-09-04 11:04:23
    根据Android官网的介绍,Android 10.0将聚焦于隐私可控、手机自定义与使用效率,此版本主要带来了十大新特性。 创新与体验 可折叠 基于强大的多窗口支持,Android 10扩展了跨应用程序窗口的多任务处理,并在设...
  • 首先看看最新版本Android 11 : https://www.zhihu.com/question/420186152 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10月19日在香港发布。 安卓2.0版本安卓2.0版本 版本主要更新如下: 全新的UI;...
  • 安卓9.0系统新特性

    千次阅读 2019-09-08 14:44:27
    安卓9.0系统新特性 新特性一: 日前针对Android系统特有的开放式特点,及其所带来的卡顿、运行不流畅问题,谷歌特意研制出最新版Android 9.0,以增强系统的封闭性。于是,网上曝出了很多安卓“抄袭”“模仿”iOS的...
  • 主要介绍了神经网络API、Kotlin支持,那些你必须了解的Android 8.1预览版和Android Studio 3.0新特性,需要的朋友可以参考下
  • 不过附录表格只涵盖了常见的功能代码适配,而Android8和Android9的众多新特性还涉及到其它的代码适配,下面就补充列出Android8和Android9的额外兼容处理说明: Android8.0 1、属性动画组合Ani...
  • android 各个版本特性

    千次阅读 2021-11-29 21:04:11
    新特性:1.运行时权限(最主要) 此版本引入了一种的权限模式,用户可直接在运行时管理应用权限。 对于以 Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用...
  • Android 各个版本以及新特性

    万次阅读 2018-08-23 09:23:23
    Android发行版本 Android 各代版本 Logo Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 1.0)。后来...
  • 安卓8.0马上就要跟广大用户见面了,那么安卓8.0版本都更新了什么内容呢?还不清楚安卓8.0版本更新了什么的小伙伴们抓紧时间跟上小编一起来看一下吧!​此外,Android O也带来了更加智能化的信息填充系统,未来不...
  • Android 12 特性

    2022-05-18 11:14:32
    Android 12
  • Android 12 变更与新特性

    千次阅读 2021-07-23 18:02:39
    文章目录Android 12新特性总结一、设置二、通知1. 媒体控制界面2. 媒体控制3. 休眠功能4. 通知界面更新5. trampoline三、消息框Toast四、模糊处理五、应用启动体验改进六、滚动拉伸效果七、AVIF图像支持八、媒体1. ...
  • Android 各版本特性

    2021-06-28 11:40:10
    都有哪些版本及特性? - 版本与API - 版本与特性 - 其它
  • 之前学习android新特性Material Design时别人分享给我的还不错的笔记,现在拿出来分享给有需要的人。github地址https://github.com/zhaodecang/android5.0-6.0Newfeatures
  • Android11新特性

    千次阅读 2020-05-07 17:59:11
    前不久,谷歌发布了Android 11 的预览版,从开发者预览版我们可以了解到,Android 11增强了对用户隐私的保护,提供了很多吸引用户的新特性,并且可以更好地支持可折叠设备和 Vulkan 扩展程序等等。 谷歌官方的资料...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,138
精华内容 43,255
关键字:

安卓8新特性