android混合开发前奏

android混合开发前奏

最近换工作发现Android开发工程师的要求越来越高了,加上行情也没之前那么火,如果还不去学习更新自己的知识技能的话很快就要被淘汰,一直想开始学习混合开发,但没有踏上日程,现在决定开始学习,希望大家能够批评指正。

  • 混合开发概念
  • Android中assets目录

混合开发

所谓app混合开发(Hybrid App),也就是一种开发的模式,开发的过程中一部分功能使用native构建,一部分功能用H5构建。混合开发的App就是在一个APP中内嵌一个轻量级的浏览器,一部分原生的功能改为H5来开发,这样的话在不升级App的情况下动态更新,而且可以在Android和iOS上同时运行,让用户的体验更好,也节省开发的成本。App的混合开发模式出来已久,但是真正流行始于2014年末,尤其是到16,17年现在(文章写于2017年9月15日)已经很流行了,因此不少招聘需求都要求掌握混合开发技术。
混合开发的优点点:节约成本和时间,缩短App的开发周期。
最大的缺点:性能不是很好,兼容性比较差
但是Android5.0和iOS9.0之后的版本,性能缺陷和兼容性问题都被削弱了,也就是说,当Android5.0 和iOS9.0之前的版本在市场上的占有率极小的时候或者说最低支持版本高于这个标准时,混合开发APP的缺点就会明显下降,相信这一天迟早会到来,所以混合开发是必须要现在开始就要学起来。
混合开发一些开发工具和框架很早就有了,比如AppCan、PhoneGap(Cordova)等,一个纯H5的开发人员完全可以搞定Android和iOS的App,不需要专门的Android和iOS开发人员了。虽然感觉这样开发起来很快很简单,但是遇到问题和特殊需求的时候,就很难搞了,所以不是说只要H5开发人员就可以把Android和iOS都干掉。不过可以肯定的是,在未来几年内Android和iOS开发人员需求量将会进一步减小,而H5开发人员需求量将会大大增加,而从Android或iOS转H5的开发人员将会更受欢迎。

Android中assets目录

Android系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.ID 的方式去调用访问;也不能通过该资源的绝对路径去访问,因为apk安装之后会放在/data/app/*.apk目录下, 以apk形式存在,asset/res 被绑定在apk中,不会解压到 /data/data/对应app目录下去,也就是说根本就没有assets的绝对路径。 查看官方API可知,Android系统为我们提供了一个AssetManager工具类。AssetManager可以访问应用程序的原始资源文件,提供一个低级别的API,通过字节流的方式读和应用程序绑定在一起的原始资源文件。通过getAssets()方法获取AssetManager对象。

AssetManager类 常用方法
final String[] list(String path) 返回指定路径所有文件和目录
final InputStream open(String fileName) 使用ACCESS_STREAMING模式打开assets下的文件。
final InputStream open(String fileName, int accessMode) 使用显示的访问模式打开assets下的文件

1.加载assets目录下的网页:
webView.loadUrl(“file///mixture/mixtureDemo/index.html”);
注:这种方式不仅加载assets目录下的网页,并且还会加载与该网页相关的css,js,图片等文件

2.访问assets下的资源文件
AssetManager.open(String fileName),返回一个InputStream类型的字节流,参数必须是文件,而不能是文件夹。

3.获取assets文件及目录
String[] fileNames = context.getAssets().list(filePath);

4.使用assets目录下的图片资源

InputStream inputStream = getAssets().open(1.jpg);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
imageView.setImageBitmap(bitmap);

Android的assets文件夹位置以及android studio中创建方式
Eclipse创建项目时就生成了assets目录,Android Studio则不一样,需要手动创建
Android Studio中创建assets目录的方式可分为如下几种:
1、在build.gradle文件下配置,加入如下代码

“sourceSets{main{assets.srcDirs = [‘src/assets’,’src/assets/’]}}”
android{
compileSdkVersion 25
buildToolsVersion “25.0.2”
defaultConfig{
… …
}
buildTpes{
… …
}
sourceSets {main { assets.srcDirs = [‘src/assets’,’src/assets/’]}}
}

鼠标右键手动创建
方式一:在当前app文件夹右键->New->Folder->Assets Folder
这里写图片描述
方式二:将项目视图切换成Project目录结构 app->main 右键新建文件夹名称为assets即可。

篇幅太长,后续会补上代码样例。。

发布了37 篇原创文章 · 获赞 15 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/u012764358/article/details/77993837