<optgroup id="6y7f6"><small id="6y7f6"></small></optgroup>

<code id="6y7f6"></code>

  • <p id="6y7f6"><tbody id="6y7f6"><ins id="6y7f6"></ins></tbody></p>
    <code id="6y7f6"><form id="6y7f6"></form></code>
      Kiba518

      Kiba518

      三線城市架構師一枚。

      Fork me on GitHub

      android開發技巧雜談

      android開發技巧一

      android的一些常用包是發布在國外的,所以一些包,我們下載不下來,我們可以使用阿里云的鏡像地址(maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' })。

      使用https的地址,如下(親測可用):

      // Top-level build file where you can add configuration options common to all sub-projects/modules.
      buildscript {
       
          repositories {
      
              maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
              google()
              mavenCentral()
              jcenter()
              maven { url "https://jitpack.io"}
      
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:3.6.0-rc01'
              classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
              classpath 'com.android.tools.build:gradle:7.1.2'
      
      
          }
      }
      
      allprojects {
          repositories {
              maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
              google()
              mavenCentral()
              jcenter() // Warning: this repository is going to shut down soon
              maven { url 'https://jitpack.io' }
          }
      }
      
      task clean(type: Delete) {
          delete rootProject.buildDir
      }添加

      兩個repositories都要添加。

      其他參考鏡像地址:

      maven { url 'https://maven.aliyun.com/repository/public' }
      maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }

      方法二,使用http,可以在倉庫前添加allowInsecureProtocol = true,如下(這個我沒測試):

      maven{
              allowInsecureProtocol = true
              url 'http://maven.aliyun.com/nexus/content/groups/public/'}
      }
      

      android開發技巧二

      當下載的項目和本地android studio的版本不一致時,在gradle.properties中添加配置如下,可以解決,如下:

      android.injected.studio.version.check=false
      

      如下圖 

      android開發技巧三

      項目的gradle出問題時,我們是無法編Build的,但通常會彈出一個藍色對話框,點擊try again,可以重新導入項目,如下:

      android開發技巧四

      如果使用了各種方法都解決不了,android studio版本不匹配的問題,那就一定是兩個版本確實存在不兼容,那就果斷換AS的版本。

      比如,AS從4.2以后,也就是4.3開始,版本名字命名方式改了,這就通常意味著AS有了一些大改動。

      如果實戰遇到android studio4.2和4.3版本不兼容,可以果斷換版本。

      AS下載地址:https://android-studio.en.softonic.com/download

      Can't convert 'UNIFIED_TEST_PLATFORM' to enum type 'BooleanFlag'
      Cannot convert string value 'UNIFIED_TEST_PLATFORM' to an enum value of type 'com.android.builder.model.AndroidGradlePluginProjectFlags$BooleanFlag' (valid case insensitive values: APPLICATION_R_CLASS_CONSTANT_IDS, TEST_R_CLASS_CONSTANT_IDS, TRANSITIVE_R_CLASS, JETPACK_COMPOSE, ML_MODEL_BINDING)
      Cannot convert string value 'UNIFIED_TEST_PLATFORM' to an enum value of type 'com.android.builder.model.AndroidGradlePluginProjectFlags$BooleanFlag' (valid case insensitive values: APPLICATION_R_CLASS_CONSTANT_IDS, TEST_R_CLASS_CONSTANT_IDS, TRANSITIVE_R_CLASS, JETPACK_COMPOSE, ML_MODEL_BINDING)
      

      android開發技巧五

      Android 調試橋 (adb) 是一個通用命令行工具,其允許您與模擬器實例或連接的 Android 設備進行通信。

      下載完adb,將里面的文件復制到C:\Users\Administrator,然后我們直接運行cmd,就可以執行adb的命令了。

      使用adb安卓調試工具打開一個activity,如下:

      啟動Activity
      adb shell am start com.kiba.app/com.kiba.app.SplashActivity
      去掉adb 命令安裝 apk 包的驗證
      adb shell settings put global package_verifier_enable 0
      連接sercer判斷是否端口被占用
      adb nodaemon server
      

      adb logcat可以查看日志,E類的是異常。

      adb logcat

      使用參考網站:https://developer.android.google.cn/studio/command-line/adb?hl=zh-cn(這里也有下載地址,不過得自己找)

      下載地址:https://www.onlinedown.net/soft/578131.htm(我在這里下載的,沒有廣告)

      如果端口被占用可以使用命令,查看占用端口的程序

      netstat -aon|findstr 5037

      然后在任務管理器里右鍵把pid顯示處理,然后處理掉進程。

      android開發技巧六

      單元測試報錯:Run Android instrumented tests using Gradle" option was ignored because this module type is not supported yet

      解決方法:

      打開 File-Settings, 取消選中圖中的復選框 "Run Android Instrumented Tests using Gradle."

      android開發技巧七

      手機USB鏈接電腦,AS卻找不到設備時,點擊troubleshoot  device connections下的rescan devices,如下圖,可以刷新鏈接的設備。

      android開發技巧八

      內容太多,設計視圖顯示不全時,可以拖動這個按鈕來拉長顯示。

      android開發技巧九

      Android的SDK地址通常在:C:\Users\Administrator\AppData\Local\Android\Sdk

      下面的tools\proguard有我們最常用的混淆文件【C:\Users\Administrator\AppData\Local\Android\Sdk\tools\proguard】

      開啟混淆的方式,在app下的build.gradle中添加代碼如下:

      
      
      android {
        buildTypes {
          debug{
                  minifyEnabled true//是否啟動混淆 ture:打開   false:關閉
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
              }
              release {
                  minifyEnabled true//是否啟動混淆 ture:打開   false:關閉
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
      }
      }

      開啟混淆后,通常我們會編譯報錯,此時我們需要在混淆文件中,增加白名單,代碼如下:

      -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
          long producerIndex;
          long consumerIndex;
      }
      -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
          rx.internal.util.atomic.LinkedQueueNode producerNode;
      }
      -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
          rx.internal.util.atomic.LinkedQueueNode consumerNode;
      }
      #雙列表
      linkage混淆白名單
      -keep class com.kunminx.linkage.bean.** {*;}
      
      

      #=============ButterKnife==============start
      -keep class butterknife.** { *; }
      -dontwarn butterknife.internal.**
      -keep class **$$ViewBinder { *; }
      -keepclasseswithmembernames class * {
      @butterknife.* <fields>;
      }
      -keepclasseswithmembernames class * {
      @butterknife.* <methods>;
      }
      #=============ButterKnife==============end

       

      需要更多白名單配置,可以網絡搜索。

      混淆文件位置如下:

       

      有時候報錯也不一定是混淆,可能是未開啟大內存申請(大堆配置),在AndroidMainfest的application里,增加配置如下:

      android:largeHeap="true"
      android:hardwareAccelerated="false"

      android開發技巧十

      OOM是常見的java錯誤,OOM主要有:

      1.OOM fo heapjava.lang:OutOfMemoryError: Java heap space,此OOM是由于JVM中heap的最大值不滿足需要,將設置heap的最大值調高即可。

      2.OOM for Perm:java.lang:OutOfMemoryError: Java perm space,此OOM是由于JVM中perm的最大值不滿足需要,將設置perm的最大值調高即可,參數樣例為:-XX:MaxPermSize=512M

      3.OOM for GC=>例如:java.lang:OutOfMemoryError: GC overhead limit exceeded,此OOM是由于JVM在GC時,對象過多,導致內存溢出,建議調整GC的策略

      4.OOM for native thread created:java.lang.OutOfMemoryError: unable to create new native thread,此OOM是由于進程剩余的空間不足,導致創建進程失敗

      5.OOM for allocate huge array:Exception in thread "main": java.lang.OutOfMemoryError: Requested array size exceeds VM limit,此類信息表明應用程序(或者被應用程序調用的APIs)試圖分配一個大于堆大小的數組

      6.OOM for small swap:Exception in thread "main": java.lang.OutOfMemoryError: request <size> bytes for <reason>. Out of swap space?,拋出這類錯誤,是由于從native堆中分配內存失敗,并且堆內存可能接近耗盡

      7.OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available,拋出這類錯誤,一般是由于方法重復調用、死循環引起,直至內存耗盡

      OOM通常是圖片太大引起的,只要把頁面中的圖片改小一點通??梢越鉀Q問題。

      在Android 2.3(API 級別 9)及更高版本上Bitmap.Config使用的默認配置是ARGB_8888,也即在此配置下每個像素會占用4 bytes每個像素會占用4 bytes。

      也就是說,一個30kb的圖片,但分辨率是1000*1000,看上去只要30KB內存,但實際上加載他需要消耗4MB的資源。

      另外OOM還常見與自定義控件為釋放,需要手動調用finalize()方法。

      android開發技巧十一

       忘記keyalias怎么辦。

      打開cmd,先跳轉到jre目錄,如下:

      cd/d C:\Program Files\Java\jdk1.8.0_351\jre\bin

       然后使用keytool查看.jks信息,就可以找到別名。

       keytool -list -v -keystore E:\project\apkkey\kkkey.jks

      android開發技巧十二

      報錯

      org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'com.android.internal.application']
      
      org.gradle.api.tasks.StopExecutionException: Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/95744 for details. This warning can be disabled by adding the line 'android.overridePathCheck=true' to gradle.properties file in the project directory.

      解決方案
      在gradle.properties文件添加這條語句:

      android.overridePathCheck=true

      配置完成后,Try Again刷新以下就可以了。(如若沒有刷新,可以重新導入項目)

      ----------------------------------------------------------------------------------------------------

      Gradle 插件版本、Gradle版本、SDK Build Tools版本、JDK版本對應關系

      3.1.0 對應Gradle 4.4 和Build Tools 27.0.3
      以下是插件版本和Gradle 版本對應關系:

      ----------------------------------------------------------------------------------------------------

      jetpack組件列表

      一、Android Jetpack - Navigation
      二、Android Jetpack - Data Binding
      三、Android Jetpack - ViewModel & LiveData
      四、Android Jetpack - Room
      五、Android Jetpack - Paging
      六、Android Jetpack - WorkManger
      七、Android Jetpack架構組件之Lifecycle

      ----------------------------------------------------------------------------------------------------

      Android 架構

      Android 操作系統是一個軟件組件的棧,在架構圖中它大致可以分為五個部分和四個主要層。

      Android 架構


      Linux內核

      在所有層的最底下是 Linux - 包括大約115個補丁的 Linux 3.6。它提供了基本的系統功能,比如進程管理,內存管理,設備管理(如攝像頭,鍵盤,顯示器)。同時,內核處理所有 Linux 所擅長的工作,如網絡和大量的設備驅動,從而避免兼容大量外圍硬件接口帶來的不便。


      程序庫

      在 Linux 內核層的上面是一系列程序庫的集合,包括開源的 Web 瀏覽器引擎 Webkit ,知名的 libc 庫,用于倉庫存儲和應用數據共享的 SQLite 數據庫,用于播放、錄制音視頻的庫,用于網絡安全的 SSL 庫等。


      Android程序庫

      這個類別包括了專門為 Android 開發的基于 Java 的程序庫。這個類別程序庫的示例包括應用程序框架庫,如用戶界面構建,圖形繪制和數據庫訪問。一些 Android 開發者可用的 Android 核心程序庫總結如下:

      • android.app - 提供應用程序模型的訪問,是所有 Android 應用程序的基石。
      • android.content - 方便應用程序之間,應用程序組件之間的內容訪問,發布,消息傳遞。
      • android.database - 用于訪問內容提供者發布的數據,包含 SQLite 數據庫管理類。
      • android.opengl - OpenGL ES 3D 圖片渲染 API 的 Java 接口。
      • android.os - 提供應用程序訪問標注操作系統服務的能力,包括消息,系統服務和進程間通信。
      • android.text - 在設備顯示上渲染和操作文本。
      • android.view - 應用程序用戶界面的基礎構建塊。
      • android.widget - 豐富的預置用戶界面組件集合,包括按鈕,標簽,列表,布局管理,單選按鈕等。
      • android.webkit - 一系列類的集合,允許為應用程序提供內建的 Web 瀏覽能力。

      看過了 Android 運行層內的基于 Java 的核心程序庫,是時候關注一下 Android 軟件棧中的基于 C/C++ 的程序庫。


      Android運行時

      這是架構中的第三部分,自下而上的第二層。這個部分提供名為 Dalvik 虛擬機的關鍵組件,類似于 Java 虛擬機,但專門為 Android 設計和優化。

      Dalvik 虛擬機使得可以在 Java 中使用 Linux 核心功能,如內存管理和多線程。Dalvik 虛擬機使得每一個 Android 應用程序運行在自己獨立的虛擬機進程。

      Android 運行時同時提供一系列核心的庫來為 Android 應用程序開發者使用標準的 Java 語言來編寫 Android 應用程序。


      應用框架

      應用框架層以 Java 類的形式為應用程序提供許多高級的服務。應用程序開發者被允許在應用中使用這些服務。

      • 活動管理者 - 控制應用程序生命周期和活動棧的所有方面。
      • 內容提供者 - 允許應用程序之間發布和分享數據。
      • 資源管理器 - 提供對非代碼嵌入資源的訪問,如字符串,顏色設置和用戶界面布局。
      • 通知管理器 - 允許應用程序顯示對話框或者通知給用戶。
      • 視圖系統 - 一個可擴展的視圖集合,用于創建應用程序用戶界面。

      應用程序

      頂層中有所有的 Android 應用程序。你寫的應用程序也將被安裝在這層。這些應用程序包括通訊錄,瀏覽器,游戲等。


      AndroidManifest.xml權限中文對照表

       
      問登記屬性 android.permission.ACCESS_CHECKIN_PROPERTIES ,讀取或寫入登記check-in數據庫屬性表的權限
      獲取錯略位置 android.permission.ACCESS_COARSE_LOCATION,通過WiFi或移動基站的方式獲取用戶錯略的經緯度信息,定位精度大概誤差在30~1500米
      獲取精確位置 android.permission.ACCESS_FINE_LOCATION,通過GPS芯片接收衛星的定位信息,定位精度達10米以內
      訪問定位額外命令 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS,允許程序訪問額外的定位提供者指令
      獲取模擬定位信息 android.permission.ACCESS_MOCK_LOCATION,獲取模擬定位信息,一般用于幫助開發者調試應用
      獲取網絡狀態 android.permission.ACCESS_NETWORK_STATE,獲取網絡信息狀態,如當前的網絡連接是否有效
      訪問Surface Flinger android.permission.ACCESS_SURFACE_FLINGER,Android平臺上底層的圖形顯示支持,一般用于游戲或照相機預覽界面和底層模式的屏幕截圖
      獲取WiFi狀態 android.permission.ACCESS_WIFI_STATE,獲取當前WiFi接入的狀態以及WLAN熱點的信息
      賬戶管理 android.permission.ACCOUNT_MANAGER,獲取賬戶驗證信息,主要為GMail賬戶信息,只有系統級進程才能訪問的權限
      驗證賬戶 android.permission.AUTHENTICATE_ACCOUNTS,允許一個程序通過賬戶驗證方式訪問賬戶管理ACCOUNT_MANAGER相關信息
      電量統計 android.permission.BATTERY_STATS,獲取電池電量統計信息
      綁定小插件 android.permission.BIND_APPWIDGET,允許一個程序告訴appWidget服務需要訪問小插件的數據庫,只有非常少的應用才用到此權限
      綁定設備管理 android.permission.BIND_DEVICE_ADMIN,請求系統管理員接收者receiver,只有系統才能使用
      綁定輸入法 android.permission.BIND_INPUT_METHOD ,請求InputMethodService服務,只有系統才能使用
      綁定RemoteView android.permission.BIND_REMOTEVIEWS,必須通過RemoteViewsService服務來請求,只有系統才能用
      綁定壁紙 android.permission.BIND_WALLPAPER,必須通過WallpaperService服務來請求,只有系統才能用
      使用藍牙 android.permission.BLUETOOTH,允許程序連接配對過的藍牙設備
      藍牙管理 android.permission.BLUETOOTH_ADMIN,允許程序進行發現和配對新的藍牙設備
      變成磚頭 android.permission.BRICK,能夠禁用手機,非常危險,顧名思義就是讓手機變成磚頭
      應用刪除時廣播 android.permission.BROADCAST_PACKAGE_REMOVED,當一個應用在刪除時觸發一個廣播
      收到短信時廣播 android.permission.BROADCAST_SMS,當收到短信時觸發一個廣播
      連續廣播 android.permission.BROADCAST_STICKY,允許一個程序收到廣播后快速收到下一個廣播
      WAP PUSH廣播 android.permission.BROADCAST_WAP_PUSH,WAP PUSH服務收到后觸發一個廣播
      撥打電話 android.permission.CALL_PHONE,允許程序從非系統撥號器里輸入電話號碼
      通話權限 android.permission.CALL_PRIVILEGED,允許程序撥打電話,替換系統的撥號器界面
      拍照權限 android.permission.CAMERA,允許訪問攝像頭進行拍照
      改變組件狀態 android.permission.CHANGE_COMPONENT_ENABLED_STATE,改變組件是否啟用狀態
      改變配置 android.permission.CHANGE_CONFIGURATION,允許當前應用改變配置,如定位
      改變網絡狀態 android.permission.CHANGE_NETWORK_STATE,改變網絡狀態如是否能聯網
      改變WiFi多播狀態 android.permission.CHANGE_WIFI_MULTICAST_STATE,改變WiFi多播狀態
      改變WiFi狀態 android.permission.CHANGE_WIFI_STATE,改變WiFi狀態
      清除應用緩存 android.permission.CLEAR_APP_CACHE,清除應用緩存
      清除用戶數據 android.permission.CLEAR_APP_USER_DATA,清除應用的用戶數據
      底層訪問權限 android.permission.CWJ_GROUP,允許CWJ賬戶組訪問底層信息
      手機優化大師擴展權限 android.permission.CELL_PHONE_MASTER_EX,手機優化大師擴展權限
      控制定位更新 android.permission.CONTROL_LOCATION_UPDATES,允許獲得移動網絡定位信息改變
      刪除緩存文件 android.permission.DELETE_CACHE_FILES,允許應用刪除緩存文件
      刪除應用 android.permission.DELETE_PACKAGES,允許程序刪除應用
      電源管理 android.permission.DEVICE_POWER,允許訪問底層電源管理
      應用診斷 android.permission.DIAGNOSTIC,允許程序到RW到診斷資源
      禁用鍵盤鎖 android.permission.DISABLE_KEYGUARD,允許程序禁用鍵盤鎖
      轉存系統信息 android.permission.DUMP,允許程序獲取系統dump信息從系統服務
      狀態欄控制 android.permission.EXPAND_STATUS_BAR,允許程序擴展或收縮狀態欄
      工廠測試模式 android.permission.FACTORY_TEST,允許程序運行工廠測試模式
      使用閃光燈 android.permission.FLASHLIGHT,允許訪問閃光燈
      強制后退 android.permission.FORCE_BACK,允許程序強制使用back后退按鍵,無論Activity是否在頂層
      訪問賬戶Gmail列表 android.permission.GET_ACCOUNTS,訪問GMail賬戶列表
      獲取應用大小 android.permission.GET_PACKAGE_SIZE,獲取應用的文件大小
      獲取任務信息 android.permission.GET_TASKS,允許程序獲取當前或最近運行的應用

      允許全局搜索

      android.permission.GLOBAL_SEARCH,允許程序使用全局搜索功能
      硬件測試 android.permission.HARDWARE_TEST,訪問硬件輔助設備,用于硬件測試
      注射事件 android.permission.INJECT_EVENTS,允許訪問本程序的底層事件,獲取按鍵、軌跡球的事件流
      安裝定位提供 android.permission.INSTALL_LOCATION_PROVIDER,安裝定位提供
      安裝應用程序 android.permission.INSTALL_PACKAGES,允許程序安裝應用
      內部系統窗口 android.permission.INTERNAL_SYSTEM_WINDOW,允許程序打開內部窗口,不對第三方應用程序開放此權限
      訪問網絡 android.permission.INTERNET,訪問網絡連接,可能產生GPRS流量
      結束后臺進程 android.permission.KILL_BACKGROUND_PROCESSES,允許程序調用killBackgroundProcesses(String).方法結束后臺進程
      管理賬戶 android.permission.MANAGE_ACCOUNTS,允許程序管理AccountManager中的賬戶列表
      管理程序引用 android.permission.MANAGE_APP_TOKENS,管理創建、摧毀、Z軸順序,僅用于系統
      高級權限 android.permission.MTWEAK_USER,允許mTweak用戶訪問高級系統權限
      社區權限 android.permission.MTWEAK_FORUM,允許使用mTweak社區權限
      軟格式化 android.permission.MASTER_CLEAR,允許程序執行軟格式化,刪除系統配置信息
      修改聲音設置 android.permission.MODIFY_AUDIO_SETTINGS,修改聲音設置信息
      修改電話狀態 android.permission.MODIFY_PHONE_STATE,修改電話狀態,如飛行模式,但不包含替換系統撥號器界面
      格式化文件系統 android.permission.MOUNT_FORMAT_FILESYSTEMS,格式化可移動文件系統,比如格式化清空SD卡
      掛載文件系統 android.permission.MOUNT_UNMOUNT_FILESYSTEMS,掛載、反掛載外部文件系統
      允許NFC通訊 android.permission.NFC,允許程序執行NFC近距離通訊操作,用于移動支持
      永久Activity android.permission.PERSISTENT_ACTIVITY,創建一個永久的Activity,該功能標記為將來將被移除
      處理撥出電話 android.permission.PROCESS_OUTGOING_CALLS,允許程序監視,修改或放棄播出電話
      讀取日程提醒 android.permission.READ_CALENDAR,允許程序讀取用戶的日程信息
      讀取聯系人 android.permission.READ_CONTACTS,允許應用訪問聯系人通訊錄信息
      屏幕截圖 android.permission.READ_FRAME_BUFFER,讀取幀緩存用于屏幕截圖
      讀取收藏夾和歷史記錄 com.android.browser.permission.READ_HISTORY_BOOKMARKS,讀取瀏覽器收藏夾和歷史記錄
      讀取輸入狀態 android.permission.READ_INPUT_STATE,讀取當前鍵的輸入狀態,僅用于系統
      讀取系統日志 android.permission.READ_LOGS,讀取系統底層日志
      讀取電話狀態 android.permission.READ_PHONE_STATE,訪問電話狀態
      讀取短信內容 android.permission.READ_SMS,讀取短信內容
      讀取同步設置 android.permission.READ_SYNC_SETTINGS,讀取同步設置,讀取Google在線同步設置
      讀取同步狀態 android.permission.READ_SYNC_STATS,讀取同步狀態,獲得Google在線同步狀態
      重啟設備 android.permission.REBOOT,允許程序重新啟動設備
      開機自動允許 android.permission.RECEIVE_BOOT_COMPLETED,允許程序開機自動運行
      接收彩信 android.permission.RECEIVE_MMS,接收彩信
      接收短信 android.permission.RECEIVE_SMS,接收短信
      接收Wap Push android.permission.RECEIVE_WAP_PUSH,接收WAP PUSH信息

       

      錄音 android.permission.RECORD_AUDIO,錄制聲音通過手機或耳機的麥克
      排序系統任務 android.permission.REORDER_TASKS,重新排序系統Z軸運行中的任務
      結束系統任務 android.permission.RESTART_PACKAGES,結束任務通過restartPackage(String)方法,該方式將在外來放棄
      發送短信 android.permission.SEND_SMS,發送短信
      設置Activity觀察其 android.permission.SET_ACTIVITY_WATCHER,設置Activity觀察器一般用于monkey測試
      設置鬧鈴提醒 com.android.alarm.permission.SET_ALARM,設置鬧鈴提醒
      設置總是退出 android.permission.SET_ALWAYS_FINISH,設置程序在后臺是否總是退出
      設置動畫縮放 android.permission.SET_ANIMATION_SCALE,設置全局動畫縮放
      設置調試程序 android.permission.SET_DEBUG_APP,設置調試程序,一般用于開發
      設置屏幕方向 android.permission.SET_ORIENTATION,設置屏幕方向為橫屏或標準方式顯示,不用于普通應用
      設置應用參數 android.permission.SET_PREFERRED_APPLICATIONS,設置應用的參數,已不再工作具體查看addPackageToPreferred(String) 介紹
      設置進程限制 android.permission.SET_PROCESS_LIMIT,允許程序設置最大的進程數量的限制
      設置系統時間 android.permission.SET_TIME,設置系統時間
      設置系統時區 android.permission.SET_TIME_ZONE,設置系統時區
      設置桌面壁紙 android.permission.SET_WALLPAPER,設置桌面壁紙
      設置壁紙建議 android.permission.SET_WALLPAPER_HINTS,設置壁紙建議
      發送永久進程信號 android.permission.SIGNAL_PERSISTENT_PROCESSES,發送一個永久的進程信號
      狀態欄控制 android.permission.STATUS_BAR,允許程序打開、關閉、禁用狀態欄
      訪問訂閱內容 android.permission.SUBSCRIBED_FEEDS_READ,訪問訂閱信息的數據庫
      寫入訂閱內容 android.permission.SUBSCRIBED_FEEDS_WRITE,寫入或修改訂閱內容的數據庫
      顯示系統窗口 android.permission.SYSTEM_ALERT_WINDOW,顯示系統窗口
      更新設備狀態 android.permission.UPDATE_DEVICE_STATS,更新設備狀態
      使用證書 android.permission.USE_CREDENTIALS,允許程序請求驗證從AccountManager
      使用SIP視頻 android.permission.USE_SIP,允許程序使用SIP視頻服務
      使用振動 android.permission.VIBRATE,允許振動
      喚醒鎖定 android.permission.WAKE_LOCK,允許程序在手機屏幕關閉后后臺進程仍然運行
      寫入GPRS接入點設置 android.permission.WRITE_APN_SETTINGS,寫入網絡GPRS接入點設置
      寫入日程提醒 android.permission.WRITE_CALENDAR,寫入日程,但不可讀取
      寫入聯系人 android.permission.WRITE_CONTACTS,寫入聯系人,但不可讀取
      寫入外部存儲 android.permission.WRITE_EXTERNAL_STORAGE,允許程序寫入外部存儲,如SD卡上寫文件
      寫入Google地圖數據 android.permission.WRITE_GSERVICES,允許程序寫入Google Map服務數據
      寫入收藏夾和歷史記錄 com.android.browser.permission.WRITE_HISTORY_BOOKMARKS,寫入瀏覽器歷史記錄或收藏夾,但不可讀取
      讀寫系統敏感設置 android.permission.WRITE_SECURE_SETTINGS,允許程序讀寫系統安全敏感的設置項
      讀寫系統設置 android.permission.WRITE_SETTINGS,允許讀寫系統設置項
      編寫短信 android.permission.WRITE_SMS,允許編寫短信
      寫入在線同步設置 android.permission.WRITE_SYNC_SETTINGS,寫入Google在線同步設置

       

      Android Gradle插件版本與Gradle版本對照

      在更新 Android Studio 時,您可能會收到一并將 Gradle 更新為最新可用版本的提示。您可以選擇接受該更新,也可以根據項目的構建要求手動指定版本。

      下表列出了各個 Android Gradle 插件版本所需的 Gradle 版本。為了獲得最佳性能,您應使用 Gradle 和插件這兩者的最新版本。

      插件版本所需的最低 Gradle 版本
      8.1 8.0
      8.0 8.0
      7.4 7.5
      7.3 7.4
      7.2 7.3.3
      7.1 7.2
      7.0 7.0
      4.2.0+ 6.7.1

      參考網站:https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn

      gradle wrapper地址:C:\Users\Administrator\.gradle\wrapper

      platfroms地址:C:\Users\Administrator\AppData\Local\Android\Sdk\platforms

      ----------------------------------------------------------------------------------------------------

      注:此文章為原創,任何形式的轉載都請聯系作者獲得授權并注明出處!
      若您覺得這篇文章還不錯,請點擊下方的【推薦】,非常感謝!

       

       

      posted @ 2023-02-05 00:03  kiba518  閱讀(444)  評論(0編輯  收藏  舉報
      欧洲黄色网页链接入口,免费A级毛片无码无遮挡久久影院,a免费黄色网址,国产一级黄色的网站
      <optgroup id="6y7f6"><small id="6y7f6"></small></optgroup>

      <code id="6y7f6"></code>

    1. <p id="6y7f6"><tbody id="6y7f6"><ins id="6y7f6"></ins></tbody></p>
      <code id="6y7f6"><form id="6y7f6"></form></code>