ast

更新时间:2022-12-31 09:27:42 阅读: 评论:0


2022年12月31日发(作者:江西人才人事考试网)

【5年Android从零复盘系列之⼆⼗⼋】Android存储(3):asts⽂件详解

【5年Android从零复盘系列之⼆⼗⼋】Android存储(3):asts⽂件

【代码是最好的⽼师】

1.概述

⽬录⽤于存储app的原始⽂件

⽬录下所有⽂件不会被编译,会被原样打包进APK

3.使⽤特定⼯具类AstManager读取Asts⽬录下⽂件

4.通常存放1-⽂本;2-不压缩图像;3-h5混合开发相关⽂件;4-⾳视频⽂件

5.不同于res/raw,asts下⽂件不能使⽤引⽤

⽅法功能

list(Stringpath)获取path下的⽂件和⽂件夹名称

open(StringfileName)打开⽂件,默认ACCESS_STREAMING模式

open(StringfileName,intaccessMode)

指定打开模式。有

未指定:ACCESS_UNKNOWN

随机:ACCESS_RANDOM

顺序:ACCESS_STREAMING

缓存:ACCESS_BUFFER

clo()关闭回收资源

2.使⽤

加载⽂本.txt

加载图⽚

加载h5

2.1加载⽂本

privatevoidreadAstTxt(){

Stringresult="";

try{

InputStreamis=getAsts().open("");

intlenght=ble();

byte[]buffer=newbyte[lenght];

(buffer);

result=newString(buffer,"utf8");

}catch(Exceptione){

tackTrace();

}

t(":n"+result);

}

2.2加载图⽚

privatevoidreadAstImg(){

Bitmapbitmap=null;

try{

InputStreamis=getAsts().open("img/ic_");

bitmap=Stream(is);

}catch(Exceptione){

tackTrace();

}

if(bitmap!=null){

geBitmap(bitmap);

}

}

2.1加载html

privatevoidreadAstH5(){

StringfileName="file:///android_ast/";

t(fileName);

WebViewClientwebViewClient=newWebViewClient();

ViewClient(webViewClient);

l(fileName);

}

3.注意

1.尽量避免存放⼤⽂件,会直接影响apk包体积

2.建议混合开发情形下,才使⽤asts存放⽂件

3.需要直接引⽤的情形,也可使⽤/res/raw原始⽂件的⽅式

4.其他代码

publicclassMainActivityextendsAppCompatActivity{

TextViewmTv;

ImageViewmImgShow;

WebViewmWebView;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

te(savedInstanceState);

tContentView(ty_main);

findViewById(_read_asts_txt).tOnClickListener(kListener(){

@Override

publicvoidonClick(Viewview){

readAstTxt();

}

});

findViewById(_read_asts_img).tOnClickListener(kListener(){

@Override

publicvoidonClick(Viewview){

readAstImg();

}

});

findViewById(_read_asts_h5).tOnClickListener(kListener(){

@Override

publicvoidonClick(Viewview){

readAstH5();

}

});

mTv=findViewById(_content);

mImgShow=findViewById(_show);

mWebView=findViewById(_view);

checkPermission();

}

privatevoidreadAstH5(){

StringfileName="file:///android_ast/";

t(fileName);

WebViewClientwebViewClient=newWebViewClient();

ViewClient(webViewClient);

l(fileName);

}

privatevoidreadAstImg(){

Bitmapbitmap=null;

try{

InputStreamis=getAsts().open("img/ic_");

bitmap=Stream(is);

}catch(Exceptione){

tackTrace();

}

if(bitmap!=null){

geBitmap(bitmap);

}

}

privatevoidreadAstTxt(){

Stringresult="";

try{

InputStreamis=getAsts().open("");

intlenght=ble();

byte[]buffer=newbyte[lenght];

(buffer);

result=newString(buffer,"utf8");

}catch(Exceptione){

tackTrace();

}

t(":n"+result);

}

}

activity_

<?xmlversion="1.0"encoding="utf-8"?>

app="/apk/res-auto"

tools="/tools"

layout_width="match_parent"

layout_height="match_parent"

context=".MainActivity">

layout_width="match_parent"

layout_height="match_parent"

gravity="center"

orientation="vertical"

layout_constraintBottom_toBottomOf="parent"

layout_constraintLeft_toLeftOf="parent"

layout_constraintRight_toRightOf="parent"

layout_constraintTop_toTopOf="parent">

id="@+id/btn_read_asts_txt"

layout_width="wrap_content"

layout_height="wrap_content"

text="read_asts_txt"

/>

id="@+id/btn_read_asts_img"

layout_width="wrap_content"

layout_height="wrap_content"

text="read_asts_img"

/>

id="@+id/btn_read_asts_h5"

layout_width="wrap_content"

layout_height="wrap_content"

text="read_asts_h5"

/>

id="@+id/tv_content"

layout_width="wrap_content"

layout_height="wrap_content"

text="内容:"

/>

id="@+id/img_show"

layout_width="80dp"

layout_height="80dp"/>

id="@+id/web_view"

layout_width="match_parent"

layout_height="match_parent"/>

本文发布于:2022-12-31 09:27:42,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/64596.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:同位素扫描
下一篇:腌臜
标签:asset
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图