导航:首页 > 操作系统 > android加载文件

android加载文件

发布时间:2022-09-03 09:22:12

1. android studio 怎么加载.so文件

1、在src/main中添加
jniLibs文件夹
,把.so复制进去
2、在build.gradle中就添加这么几行
,
看图
复制内容到剪贴板
sourceSets
{
main
{
jniLibs.srcDirs
=
['libs']
}
}
3、然后make
project
4、切换到android结构下,你会看到
jniLibs
中.so已经变成了.jar文件,证明已经成功

2. android程序是怎么加载pak文件里面的图片、音频等资源的

你说的是程序? 那就是用流了
android有很多那只的方法可以使用--〉

下面就是读取 assets 文件夹下面的 db 数据库的代码 -- 其他也是差不多的类似这个过程
InputStream is = getContext().getResources().getAssets().open("region.db");
FileOutputStream fis = new FileOutputStream(databaseName);
byte[] buffer = new byte[8192];
int count;
while ((count = is.read(buffer)) > 0) {
fis.write(buffer, 0, count);
}
fis.close();
is.close();

3. android 什么时候加载xml文件

如果是spring的配置文件,由于事先在web.xml中已经注册过了,所以在启动的时候就被加载了; 如果是自定义的xml文件,如果在spring的配置文件中<import resource="context-trigger.xml"/>通过, 这种方式引入,也会在启动的时候被加载; 其它的xml文件,只有在被调用的时候才会加载的内存中。

4. android怎么加载本地html文件

1。获取资源的输入流

资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过

Context.getAssets().open(“test.html”)

方法获取输入流。

注意:如果资源文件是文本文件则需要考虑文件的编码和换行符。建议使用UTF-8和Unix换行符。

2. WebView 加载assets目录下的html文件

资源文件 sample.html 位于 $PROJECT_HOME/assets/ 目录下,可以通过以下代码

WebView.loadUrl(“file:///android_asset/test.html”);

加载html文件。

5. Android WebView如何加载assets下的html文件

项目需求:将html文件以及所用到的图片都放在
assets/html/
目录下。然后在页面上通过WebView来显示直接付上代码:
private
void
readHtmlFormAssets(){
WebSettings
webSettings
=
tipsWebView.getSettings();
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
}以上就是常用的webView显示设置,通过上段代码就可以成功显示html文件,只要保证html代码中图片是相对地址,且能正确找到就能正常显示网页中所包含的图片。(本例中图片就位于同一目录下。)显示效果:点击时可以缩放,图片正常显示。初次显示会缩放至合理的大小。因此上段代码是以后的通用代码库注:
WebView默认显示效果就是100%
px
显示,我想要的效果是缩放到合理大小让内容全部可见。所以你可以通过
setInitialScale来设置缩放,不过不同screen
需要设置不一样的比例,而这个参数又不好在xml中设置,所以比较麻烦。用了上面的代码,这个问题也给解决了。I
also
experimented
with
setInitialScale
but
on
different
screen
sizes
and
web
page
sizes
that
won't
be
as
graceful
as
the
browsers
scaling.

6. android怎么加载html

android加载html

主要有2种方案:

方案一:

启动第三方浏览器或者安卓内置的浏览器进行加载先生html文件。

方案二:

使用android 自带的webview控件进行加载html文件或者网页。


不常用方案有1种:

使用android控件TextView进行加载html文件。


主要原理:

通过读取html文件里面的标签进行解析相关的元素从而通过浏览器,或者android自带的控件进行显示,其中webview控件本质上就是一个浏览器,TextView显示html内容就是通过解析标签,元素通过内置方法转化成相应带有属性的文本信息然后显示到界面上。

详细解决步奏:

方案一:

java">Uriuri=Uri.parse("http://www.XXXX.com");//要链接的地址或者html
Intentintent=newIntent(Intent.ACTION_VIEW,uri);
startActivity(intent);

缺点如果android中没有浏览器,则无法启动显示相关内容。


方案二:

webview=(WebView)findViewById(R.id.WebView01);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://www.xxxx.com");//要链接的地址或者html

缺点:目前没有什么缺点,比其他2种好,天生为加载html文件而出生的


方案三:

不常用的方法,借助函数Html.fromHtml()来解析html内容,并且进行显示。

TextViewtext1=(TextView)findViewById(R.id.TextView02);
text1.setText(Html.fromHtml(“<fontsize='20'>网页内容html</font>”));

缺点:加载速度慢于webview加载速度。


最后

推荐使用webview进行加载html内容,其特性优于其他2种加载方式

7. android 怎么通过代码加载xml文件内容

关键方法:public int getIdentifier(String name, String defType, String defPackage)
关于具体使用方法,举例如下:
1、updatelog.xml文件位于res/xml/文件夹下:
<?xml version="1.0" encoding="utf-8"?>
<updatelog>
<release
version="1.0"
versioncode="1.1">
<log>1、这个文件在res/xml文件夹下;</log>
<log>2、这个文件的名字是“updatelog.xml”</log>
<log>3、这是一个xml文件</log>
</release>

8. 如何动态加载android的so文件,如何压缩apk尺寸,androidapk

在Android中调用动态库文件(*.so)都是通过jni的方式,而且往往在apk或jar包中调用so文件时,都要将对应so文件打包进apk或jar包,工程目录下图:

以上方式的存在的问题:
1、缺少灵活性比较类似静态加载了(不是静态加载),能加载的so文件绑定死了;
2、但so文件很多或很大时,会导致对应的apk和jar包很大;
3、不能动态的对so文件更新;

Android中加载so文件的提供的API:
void System.load(String pathName);

说明:
1、pathName:文件名+文件路劲;
2、该方法调用成功后so文件中的导出函数都将插入的系统提供的一个映射表(类型Map);

看到以上对System.load(String pathName);的函数说明可定有人会想到将so文件放到一个指定的目录然后再通过参数pathName直接引用该目录的路劲和对应的so文件问题不就解决了吗?
这里有个问题被忽略了,那就是System.load只能加载两个目录路劲下的so文件:
1、/system/lib ;
2、安装包的路劲,即:/data/data/<packagename>/…
而且这两个路劲又是有权限保护的不能直接访问;

问题解决方法:
先从网络下载so文件到手机目录(如:/test/device/test.so) –> 将test.so加载到内存(ByteArrayOutputStream) –> 然后保存到对用安装包目录;
具体代码如下:

try {
String localPath = Environment.getExternalStorageDirectory() + path;
Log.v(TAG, "LazyBandingLib localPath:" + localPath);

String[] tokens = mPatterns.split(path);
if (null == tokens || tokens.length <= 0
|| tokens[tokens.length - 1] == "") {
Log.v(TAG, "非法的文件路径!");
return -3;
}
// 开辟一个输入流
File inFile = new File(localPath);
// 判断需加载的文件是否存在
if (!inFile.exists()) {
// 下载远程驱动文件
Log.v(TAG, inFile.getAbsolutePath() + " is not fond!");
return 1;
}
FileInputStream fis = new FileInputStream(inFile);

File dir = context.getDir("libs", Context.MODE_PRIVATE);
// 获取驱动文件输出流
File soFile = new File(dir, tokens[tokens.length - 1]);
if (!soFile.exists()) {
Log.v(TAG, "### " + soFile.getAbsolutePath() + " is not exists");
FileOutputStream fos = new FileOutputStream(soFile);
Log.v(TAG, "FileOutputStream:" + fos.toString() + ",tokens:"
+ tokens[tokens.length - 1]);

// 字节数组输出流,写入到内存中(ram)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = fis.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
// 从内存到写入到具体文件
fos.write(baos.toByteArray());
// 关闭文件流
baos.close();
fos.close();
}
fis.close();
Log.v(TAG, "### System.load start");
// 加载外设驱动
System.load(soFile.getAbsolutePath());
Log.v(TAG, "### System.load End");

return 0;

} catch (Exception e) {
Log.v(TAG, "Exception " + e.getMessage());
e.printStackTrace();
return -1;

}

阅读全文

与android加载文件相关的资料

热点内容
广联达软件加密锁原装芯片 浏览:314
如何打开数据库服务器 浏览:308
kppm是什么app 浏览:536
python多个数组命名 浏览:189
a算法csdn 浏览:21
r720服务器什么年代 浏览:973
本地电脑怎么设置传奇服务器 浏览:1000
安卓10框架怎么制作 浏览:957
程序员退休工资待遇 浏览:607
湛江中文编程数控系统代理 浏览:417
openglandroid书 浏览:170
奇妙组件安卓版叫什么 浏览:729
微信授权什么app权重最高 浏览:11
php循环数组foreach 浏览:78
zip和app有什么区别 浏览:633
乖法快速算法 浏览:872
日本程序员一年工资 浏览:199
出国做程序员怎么样 浏览:736
rar锁定压缩文件 浏览:871
安卓id号码怎么更换 浏览:524