官網 [Android Nougat預覽](https://developer.android.com/about/versions/nougat)
項目中的 `targetSdkVersion` 改為 `24(7.0)` 或者 `25(7.1)` 。
[TOC]
## 文件共享權限
為了提高私有文件的安全性,面向 Android 7.0 或更高版本的應用私有目錄被限制訪問。
> 在官方7.0的以上的系統中,嘗試傳遞`file://URI`可能會觸發`FileUriExposedException`。
要在應用間共享文件,您應發送一項`content://`URI,并授予 URI 臨時訪問權限。進行此授權的最簡單方式是使用 [FileProvider](https://developer.android.com/reference/android/support/v4/content/FileProvider) 類。如需了解有關權限和共享文件的詳細信息,請參閱 [共享文件](https://developer.android.com/training/secure-file-sharing)。
申明自定義的 `provider` :
```xml
<provider
android:name=".common.provider.XXXFileProvider"
android:authorities="com.wuba.bangjob.file_provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/xxx_file_paths" />
</provider>
```
`XXXFileProvider` 可以是空實現:
```java
public class ZCMFileProvider extends FileProvider {}
```
編寫 `xxx_file_paths` :
```xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
<root-path
name="root_path"
path="." />
</paths>
```
詳細講述可以參考**鴻洋大神**的 [Android 7.0 行為變更 通過FileProvider在應用間共享文件吧](https://blog.csdn.net/lmj623565791/article/details/72859156)
## 后臺優化
在 Android 7.0 中,我們刪除了三個常用隱式廣播
- [CONNECTIVITY_ACTION](https://developer.android.com/reference/android/net/ConnectivityManager#CONNECTIVITY_ACTION)
- [ACTION_NEW_PICTURE](https://developer.android.com/reference/android/hardware/Camera#ACTION_NEW_PICTURE)
- [ACTION_NEW_VIDEO](https://developer.android.com/reference/android/hardware/Camera#ACTION_NEW_VIDEO)
因為這些廣播可能會一次喚醒多個應用的后臺進程,同時會耗盡內存和電池。如果您的應用收到這些廣播,請充分利用 Android 7.0 以遷移到`JobScheduler`和相關的 API。
*****
文章到這里就全部講述完啦,若有其他需要交流的可以留言哦~!~!
想閱讀作者的更多文章,可以查看我 [個人博客](http://dandanlove.com/) 和公共號:
- 寫在前面的話
- Java
- 基礎
- Double的比較
- 小數怎么用二進制表示
- 多線程
- 并發和并行
- 線程池
- 線程池背景
- 線程池構造
- 任務阻塞隊列
- Flutter
- 基礎知識
- Dart基礎
- Android
- 項目架構
- View
- 非UI線程更新View
- AlarmManager
- 對比postDelaryed和Timer
- Bitmap
- 加載100M的圖片卻不撐爆內存
- Bitmap壓縮
- Bitmap局部解碼
- 計算圖片的內存占用
- Android動畫
- Android動畫類型
- Android動畫原理
- 屬性動畫
- 幀動畫
- 補間動畫
- 使用動畫的注意事項
- Android新特性
- 權限組
- Android23(Marshmallow)-6.0
- Android24(Nougat)-7.0
- Android26(Oreo)-8.0
- Android28(Pie)-9.0
- Android29(Q)-10.0
- AndroidX遷移
- Kotlin
- 關鍵字
- Kotlin操作符
- CoroutineScope
- Flow
- CoroutineException