當前位置:首頁 » 安卓系統 » android文件類型

android文件類型

發布時間: 2023-03-07 01:25:02

A. Android中如何使用代碼打開各種類型的文件

在安卓中打開音樂、視頻、圖片、文檔等文件是需要有讀取SD卡許可權的,如果是6.0以下的系統,則直接在清單文件中聲明SD卡讀取許可權即可;如果是6.0或以上,則需要動態申請許可權。

在7.0以下中打開文件時,通過intent調用系統安裝得人軟體打開文件就好了,但是在android7.0及以上的機子上這么做會報android.os.FileUriExposedException錯誤,

1)讀取SD卡

2)動態申請許可權

//設備API大於6.0時,主動申請許可權(讀取文件的許可權)

public static  void requestPermission(Activity context) {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

        if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE)

                != PackageManager.PERMISSION_GRANTED) {

            ActivityCompat.requestPermissions(context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,

                    Manifest.permission.READ_EXTERNAL_STORAGE}, 0);

        }

    }

}

3)讀取文件

intent = OpenFileUtil.openFile(filePath+"/"+FileName+"."+end);

使用OpenFileUtil這個。鏈接: https://www.jianshu.com/p/1414101858c1

為了兼容Android7.0,獲取文件Uri需要使用到FileProvider。

1)首先是AndroidManifest文件裡面注冊FileProvider

    android:name="android.support.v4.content.FileProvider"

    android:authorities="${applicationId}.provider"

    android:exported="false"

    android:grantUriPermissions="true">

        android:name="android.support.FILE_PROVIDER_PATHS"

        android:resource="@xml/provider_paths" /> //需要自己編寫xml文件

2)provider_paths.xml文件的編寫

    // .表示根目錄

3)打開文檔方式為

intent = new Intent(Intent.ACTION_VIEW);

intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

File txtFile = new File(filePath+"/"+FileName+"."+end);

Uri contentUri = FileProvider.getUriForFile(MyApplication.getContext(), BuildConfig.APPLICATION_ID+".provider", txtFile);

intent.setDataAndType(contentUri, "application/vnd.android.package-archive");

grantUriPermission(context, contentUri, intent);

startActivity(intent);

4)grantUriPermission方法添加許可權

private static void grantUriPermission (Context context, Uri fileUri, Intent intent) {

    List resInfoList = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);

    for (ResolveInfo resolveInfo : resInfoList) {

        String packageName = resolveInfo.activityInfo.packageName;

        context.grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);

    }

}

綜合兩種情況:

//判斷是否是AndroidN以及更高的版本,Build.VERSION_CODES.N是Android 7.0

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

    intent = new Intent(Intent.ACTION_VIEW);

    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    File txtFile = new File(filePath+"/"+FileName+"."+end);

    Uri contentUri = FileProvider.getUriForFile(MyApplication.getContext(), BuildConfig.APPLICATION_ID+".provider", txtFile);

    Log.i("文件地址:",contentUri.toString());

    intent.setDataAndType(contentUri, "application/vnd.android.package-archive");

    grantUriPermission(MyApplication.getContext(), contentUri, intent);

} else {

    //7.0以下的可以打開文件了

    intent = OpenFileUtil.openFile(filePath+"/"+FileName+"."+end);

}

MyApplication.getContext().startActivity(intent);

B. Android中項目中各個文件夾的含義和用途詳解

原文地址: http://www.cnblogs.com/shellway/p/4032464.html

1.src:存放所有的*.java源程序。

2.assets:可以存放項目一些較大的資源文件,例如:圖片、音樂、字體等。

3.res:可以存放項目中所有的資源文件,例如:圖片( .png、 .jpg)、文本等。

4.res/drawable-hdpi:保存高解析度圖片資源,可以使用Resources.getDrawable(id)可以獲得資源類型。

5.res/drawable-ldpi:保存低分辯率圖片資源,可以使用Resources.getDrawable(id)可以獲得資源類型。

6.res/drawable-mdpi:保存中等解析度圖片資源,可以使用Resources.getDrawable(id)可以獲得資源類型。

7.res/layout:存放所有的布局文件,主要是用於排列不同的顯示組件,在Android程序中要讀取此配置。

8.res/values: 存放一些資源文件的信息,用於讀取文本資源,在本文件夾之中有一些約定的文件名稱:

10.res/raw:自定義的一些原生文件所在目錄,像音樂、視頻等文件格式。存放直接復制到設備中的任意文件。它們無需編譯,添加到你的應用程序編譯產生的壓縮文件中。要使用這些資源,可以調用 Resources.openRawResource() ,參數是資源的ID也可以用,即R.raw.somefilename , Resources.getRawResource()`方法可以獲得這些資源。

11.res/xml:用戶自定義的XML文件,所有的文件在程序運行時編譯到應用程序之中,在程序運行時可以使用Resources.getXML()方法獲取。

12.res/anim:用於定義動畫對象。存放定義了補間動畫(tweened animation)或逐幀動畫(frameby frame animation)的XML文件。(該目錄下也可以存放定義property animations的XML文件,但是最好還是分開存放)

13.res/animator:存放定義了propertyanimations(android 3.0新定義的動畫框架)的XML文件

14.res/color/:存放定義了顏色狀態列表資源(ColorState List Resource)的XML文件

15.res/drawable/:存放定義了圖片狀態列表資源(ColorState List Resource)的XML文件

16.res/menu/:存放定義了應用程序菜單資源的XML文件。正確創建文件的方法:new Folder,名字menu,new Other——Android——XML,選擇menu類型,填寫名稱,確定即可。菜單資源文件必須放在res/menu目錄中。菜單資源文件必須使用<menu>標簽作為根節點。除了<menu>標簽外,還有另外兩個標簽用於設置菜單項和分組,這兩個標簽是<item>和<group>。

注意:
對於res/color和res/drawable這兩個文件中的內容在這作一下詳解:
首先說一下color文件夾,在這個文件夾下放的是color_selector.xml等文件,主要是用於背景色的selector,比如TextView中的textColor屬性,點擊改變TextView中的字體顏色,在這個文件中的文件color_selector.xml中定義如下:

C. AndroidManifest.xml 文件格式解析

圖片左側為解壓開apk後,AndroidManifest.xml的二進制內容,右側為各個chunk的解析。各個chunk和對應的二進制內容通過相同的顏色標記。

Android逆向三部曲之AndroidManifest.xml 文件格式 https://www.jianshu.com/p/f0f4856866e0

AndroidManifest二進制文件格式分析: https://bbs.pediy.com/thread-194206.html

手把手教你解析AXML: https://blog.csdn.net/beyond702/article/details/51830108?spm=1001.2014.3001.5502

大小端模式: https://blog.csdn.net/q2519008/article/details/80961176

ResourceTypes.h 源文件: http://androidxref.com/9.0.0_r3/xref/frameworks/base/libs/androidfw/include/androidfw/ResourceTypes.h

D. 同一個軟體安裝包在安卓和蘋果下的文件類型是什麼

apk是Android(安卓)系統支持的安裝包類型,蘋果系統支持的安裝文件ipa,deb,pxl。
APK是AndroidPackage的縮寫,即Android安裝包(apk)。APK是類似SymbianSis或Sisx的文件格式。

E. 如何查看自己的android手機各分區的文件系統類型

安卓系統一般把rom晶元分成7個區,如果再加上內置sd卡這個分區,就是8個:
hboot分區----------負責啟動。
radio分區----------負責驅動。
recovery分區-------負責恢復。
boot分區-----------系統內核。
system分區---------系統文件。
cache分區----------系統緩存
userdata分區-------用戶數據。
需要注意的是,前6個區的容量在系統信息裡面是看不出來的,我們看到的rom總容量,其實就是第7個區userdate區的大小,這個區主要裝一些軟體,是用戶可以使用的分區。這個分區的大小直接影響到安裝軟體的數量。也就是說userdate區就是我們常說的「可用rom」
在安卓里,雖然軟體可以安裝到卡中,但是一些系統軟體最好還是安裝到userdata分區,否則會出現載入的一些小問題,比如使用的桌面軟體和一些在桌面上顯示插件的軟體。並且就算你把軟體都裝到卡里,userdata分區還是會不斷減小。就像在電腦里,就算你把軟體裝到D盤,仍然會在c盤生成一些系統文件,佔掉c盤空間一樣。
8g的應當是系統分區,內容用re管理器可以查看。

F. 和apk同類型的文件

Java文件-----應用程序源文件
Android本身相當一部分都是用java編寫而成(基本上架構圖里頭藍色的部份都是用Java開發的),android的
應用必須使用java來開發

Class文件------Java編譯後的目標文件
不像J2se,java編譯成class就可以直接運行,android平台上class文件不能直接在android上運行。 由於Google
使用了自己的Dalvik來運行應用, 所以這里的class也肯定不能在AndroidDalvik的java環境中運行, android
的class文件實際上只是編譯過程中的中間目標文件,需要鏈接成dex文件後才能在dalvik上運行

Dex文件-----Android平台上的可執行文件
Android虛擬機Dalvik支持的位元組碼文件格式Google在新發布的Android平台上使用了自己的Dalvik虛擬機
來定義, 這種虛擬機執行的並非Java位元組碼, 而是另一種位元組碼: dex格式的位元組碼。在編譯Java代碼之後,
通過Android平台上的工具可以將Java位元組碼轉換成Dex位元組碼。雖然Google稱Dalvik是為了移動設備定
做的,但是業界很多人認為這是為了規避向sun申請Javalicense。這個DalvikVM針對手機程式/CPU做過最
佳化,可以同時執行許多VM而不會佔用太多Resource。
Apk文件-------Android上的安裝文件
Apk是Android安裝包的擴展名,一個Android安裝包包含了與某個Android應用程序相關的所有文件。apk
文件將AndroidManifest.xml文件、應用程序代碼(.dex文件)、資源文件和其他文件打成一個壓縮包。一個工
程只能打進一個.apk文件
Android的4種文件類型Java,class,dex,apk的更多相關文章
linux】七種文件類型
Linux中的七種文件類型 d 目錄文件. l 符號鏈接(指向另一個文件). s 套接字文件. b 塊設備文件,二進制文件. c 字元設備文件. p 命名管道文件. - 普通文件

Linux 下的7種文件類型
普通文件類型 (-)Linux中最多的一種文件類型, 包括 純文本文件(ASCII):二進制文件(binary):數據格式的文件(data);各種壓縮文件.第一個屬性為 [-] ,這些文件一般是用一些 ...

linux文件的3個時間和7種文件類型
linux文件的三個時間: atime: access time --最近訪問時間. ctime: change time --最近改變時間. mtime:modify time --最近修改時間. ...

搞懂Linux下的幾種文件類型
在Linux系統下,有七類文件類型: 普通文件(-) 目錄(d) 軟鏈接(字元鏈接L) 套接字文件(S) 字元設備(S) 塊設備(B) 管道文件(命名管道P) 普通文件.目錄.軟鏈接無需多解釋. 管道 ...

Linux 文件系統 -- 簡述幾種文件類型
Linux 中一切皆為文件,文件類型也有多種,使用 ls -l 命令可以查看文件的屬性,所顯示結果的第一列的第一個字元用來表明該文件的文件類型,如下: 1.普通文件 使用 ls -l 命令後,第一列第 ...

Java主要有那幾種文件類型?各自的作用是什麼
1.源代碼.java程序員編譯的源代碼. 2..class 位元組碼文件 jvm實現跨平台的中間編譯文件. 3.jar包 講位元組碼文件打包好,便於查找和使用.

Java主要有那幾種文件類型,各自作用
java提供了兩類數據類型:基本類型,引用類型. 1.基本類型包括:boolean ,byte,char,int,short,float,long,double,值得注意的是:在原始數據類型中,除了b ...

9.Java主要有那幾種文件類型?各自的作用是什麼?
java類源代碼.jsp頁面.class編譯後的類文件.xml一般是配置文件當然也可以用來傳數據時候用.properties這也是配置文件.數據文件.

idea Mark Directory as 的幾種文件類型
1. Source roots (or source folders) 源文件夾 通過為該類別分配文件夾,可以告訴IntelliJ IDEA該文件夾及其子文件夾包含應在構建過程中進行編譯的源代碼. 2 ...

隨機推薦
Android Animation學習(五) ApiDemos解析:容器布局動畫 LayoutTransition
Android Animation學習(五) ApiDemos解析:容器布局動畫 LayoutTransition Property animation系統還提供了對ViewGroup中的View改變 ...

Android中利用ViewHolder優化自定義Adapter的典型寫法
利用ViewHolder優化自定義Adapter的典型寫法 最近寫Adapter寫得多了,慢慢就熟悉了. 用ViewHolder,主要是進行一些性能優化,減少一些不必要的重復操作.(WXD同學教我的. ...

初學Spring有沒有適合的書
初學者之前沒有閱讀java框架源碼的習慣.沒有閱讀過源碼,知道整體流程么?知道依賴注入的概念么?知道aop么?知道其中用到了哪些設計模式么?再說了,如果一上手就是源碼?難道你沒有注意到Spring的類 ...

Android draw9patch 圖片製作與使用
理解一下4句話: 上邊 決定左右拉升不變形 左邊 決定上下拉升不變形 右邊 設置內容高度區域 下邊 設置內容寬度區域 下面我拿張圖片分別舉例說明: 1.QQ多彩氣泡 聊天對話框也用.9圖片製作 繼承過 ...

iOS 學習資源
這份學習資料是為 iOS 初學者所准備的, 旨在幫助 iOS 初學者們快速找到適合自己的學習資料, 節省他們搜索資料的時間, 使他們更好的規劃好自己的 iOS 學習路線, 更快的入門, 更准確的定位的 ...

Palo(OLAP database)–MOLAP
本地安裝:D:\Program Files (x86)\Jedox Palo-Server https://www.openhub.net/p/p4155 維基網路:https://en.wiki ...

ios UIScrollView 中控制項自動增加間隔
設置 self.=FALSE; 去除自動間隔功能

網站添加數據出錯,原來是MS SQL Server2008日誌文件占據空間過大導致的
最近發現公司上線的八爪魚招標網有部分功能出現問題,主要表現為無法向資料庫插入數據:遠程登陸到資料庫伺服器時,發現原本的40G空間都被資料庫吃完了,於是打開MS SQL Server 2008對資料庫進 ...

js 求時間差
var date1=new Date(); //開始時間 var date2=new Date(); //結束時間 var date3=date2.getTime()-date1.getTim ...

MySQL基礎學習(二) 常用SQL命令
一. 1. select version(); 查看資料庫版本 2. select user(); 查看當前用戶 3. select now(); 查看當前時間 4. show databases; .

G. 安卓Android軟體安裝包apk是什麼文件格式

安卓android的軟體安裝包以.apk為文件擴展名,其文件格式是標準的.zip文件,可以通過winzip、winrar等壓縮文件工具直接打開,或是在.apk文件名上添加.zip後綴,即可查看封裝在其中的具體文件內容,包括程序、圖片、配置文件等。
與標準的.zip文件不同的是,安卓android的.apk軟體安裝包還附帶有兩個關鍵的識別信息:包名和簽名。其中包名用於識別軟體本身,以便提供安裝替換和版本升級提示等用途;簽名用於識別開發者,以便判斷軟體包是否被修改過。
通過網頁或論壇下載的安卓android軟體安裝包,有時會被自動改名為.zip擴展名,這時需要直接將.zip擴展名的安卓android軟體安裝包直接改名為.apk,以便正常安裝到android設備中。

熱點內容
廣東人社賬號密碼多少 發布:2025-05-10 03:43:11 瀏覽:616
python對象參數 發布:2025-05-10 03:43:11 瀏覽:576
自己伺服器搭建梯子 發布:2025-05-10 03:31:39 瀏覽:573
華為升級包怎麼解壓 發布:2025-05-10 03:18:24 瀏覽:603
c語言以什麼結束 發布:2025-05-10 03:18:22 瀏覽:258
160android 發布:2025-05-10 03:03:30 瀏覽:178
pythonstorage 發布:2025-05-10 02:58:38 瀏覽:501
如何查看電腦配置顯卡參數 發布:2025-05-10 02:37:00 瀏覽:106
證券交易密碼在哪裡修改 發布:2025-05-10 02:31:56 瀏覽:839
javafor是什麼意思 發布:2025-05-10 02:23:09 瀏覽:842