Android使用WebView打包网页成app

Android使用WebView打包网页成app,第1张

概述原生app的开发成本和网页相比相对较高,所以越来越多的app使用网页来作为界面,甚至完全将一个网站封装成app,可以提高开发速度,还能基本实现跨平台。 下面以Android为例,在ubuntu-14.04.4-desktop-amd64环境实现一个简单的WebView封装网站成app的过程。   环境准备 开发环境需要Java SDK(官网下载),Android SDK(官网下载)。 Java S

原生app的开发成本和网页相比相对较高,所以越来越多的app使用网页来作为界面,甚至完全将一个网站封装成app,可以提高开发速度,还能基本实现跨平台。

下面以AndroID为例,在ubuntu-14.04.4-desktop-amd64环境实现一个简单的WebVIEw封装网站成app的过程。

 

环境准备

开发环境需要Java SDK(官网下载),AndroID SDK(官网下载)。

Java SDK安装
wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz
tar -x -f
jdk-8u91-linux-x64.tar.gz

然后配置PATH路径及JAVA_HOME

vi ~/.bashrc

在最后添加

export JAVA_HOME=JDK解压目录export CLAsspATH=.:$CLAsspATH:$JAVA_HOME/libexport PATH=$PATH:$JAVA_HOME/bin

 保存退出vi,刷新配置

source ~/.bashrc
AndroID SDK安装

ps:安装过程中可能需要梯子,请自备。

wget https://dl.Google.com/androID/androID-sdk_r24.4.1-linux.tgztar -x -f androID-sdk_r24.4.1-linux.tgzcd androID-sdk-linux/tools

先看一下有哪些sdk版本可以安装

./androID List sdk

然后安装需要的sdk版本

./androID update sdk --no-ui --filter 用逗号分隔需要安装的序号

 

项目建立及代码编写

在任意地方新建一个目录,保存这个项目,然后新建一个src目录,用于存放源文件。因为Java有包的概念,所以进入src目录后,根据包名的层次,依次建立相应目录,然后新建Java源程序文件,比如:

 1 package test.androID; 2  3 import androID.app.Activity; 4 import androID.os.Bundle; 5 // import androID.app.AlertDialog; 6 import androID.vIEw.Window; 7 // import androID.vIEw.WindowManager; 8 import androID.vIEw.KeyEvent; 9 import androID.webkit.WebVIEw;10 import androID.webkit.WebVIEwClIEnt;11 //import androID.webkit.WebChromeClIEnt;12 // import androID.webkit.JsResult;13 // import androID.content.DialogInterface;14 // import androID.content.DialogInterface.OnClickListener;15 16 public class Main extends Activity {17   public static final String LOAD_URL = "http://www.baIDu.com/";18 19   private WebVIEw webVIEw = null;20 21   public voID onCreate(Bundle savedInstanceState) {22     super.onCreate(savedInstanceState);23 24     //this.requestwindowFeature(Window.FEATURE_NO_Title);25     //this.getwindow().setFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN,WindowManager.LayoutParams.FLAG_FulLSCREEN);26 27     webVIEw = new WebVIEw(this);28     this.setContentVIEw(webVIEw);29     webVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt() {30       public voID onPageFinished(WebVIEw vIEw,String url) {31         //webVIEw.evaluateJavaScript("test();",null);32       }33     });34     /*35     webVIEw.setWebChromeClIEnt(new WebChromeClIEnt() {36       public boolean onjsAlert(WebVIEw vIEw,String url,String message,JsResult result) {37 38         new AlertDialog.Builder(_this)39         .setMessage(message)40         .setPositivebutton("OK",new DialogInterface.OnClickListener() {41           public voID onClick(DialogInterface dialog,int which) {}42         }).show();43 44         return true;45       }46     });47     */48     webVIEw.getSettings().setJavaScriptEnabled(true);49     webVIEw.addJavaScriptInterface(this,"native");50     webVIEw.loadUrl(LOAD_URL);51   }52 53   // overwrite back button54   public boolean onKeyDown(int keyCode,KeyEvent event) {55     if (KeyEvent.KEYCODE_BACK == keyCode && webVIEw.canGoBack()) {56       webVIEw.goBack();57       return true;58     }59 60     return super.onKeyDown(keyCode,event);61   }62 63 }

 

将文件保存为Main.java

 

回到项目根目录,新建另一个文件,保存为AndroIDManifest.xml,内容如下:

 1 <?xml version="1.0" en@R_502_5563@="utf-8"?> 2 <manifest  xmlns:androID="http://schemas.androID.com/apk/res/androID" package="test.androID"> 3   <application androID:icon="@drawable/icon" 4                androID:label="@string/app_name"> 5     <activity androID:name=".Main"> 6       <intent-filter> 7         <action androID:name="androID.intent.action.MAIN" /> 8         <category androID:name="androID.intent.category.LAUNCHER" /> 9       </intent-filter>10     </activity>11   </application>12 13   <uses-permission androID:name="androID.permission.INTERNET" />14 15 </manifest>

 

在项目根目录新建res目录,在res内新建drawable和values目录。

在values内新建xml文件strings.xml,内容如下:

<?xml version="1.0" en@R_502_5563@="utf-8"?><resources>  <string name="app_name">网页打包</string>  <string name="web_url">http://www.baIDu.com</string></resources>

然后将需要的程序图标拷入drawable目录,文件名为icon.png

 

演示示例可以从这里下载

 

编译

先切换到项目目录。

首先要编译资源,在项目根目录创建gen目录,保存生成的R.java资源编号,在控制台输入以下命令:

/opt/androID-sdk-linux/build-tools/24.0.0/aapt package -f -m -J gen -S res -I /opt/androID-sdk-linux/platforms/androID-24/androID.jar -M AndroIDManifest.xml

编译java源文件时,加入R.java源文件:

javac -en@R_502_5563@ utf-8 -source 1.6 -target 1.6 -bootclasspath /opt/androID-sdk-linux/platforms/androID-24/androID.jar -d bin/classes src/test/androID/Main.java gen/test/androID/R.java

 将编译好的文件打包成dex格式

/opt/androID-sdk-linux/build-tools/24.0.0/dx --dex --output=bin/classes.dex bin/classes

将资源文件打包

/opt/androID-sdk-linux/build-tools/24.0.0/aapt package -f -M AndroIDManifest.xml -S res -I /opt/androID-sdk-linux/platforms/androID-24/androID.jar -F bin/main.ap_

将所有文件打包成apk

java -classpath /opt/androID-sdk-linux/tools/lib/sdklib.jar com.androID.sdklib.build.ApkBuilderMain main_unsigned.apk -v -u -z bin/main.ap_ -f bin/classes.dex -rf src

生成签名文件

1 keytool -genkey -alias my.keystore -keyalg RSA -valIDity 20000 -keypass 123456 -storepass 123456 -keystore my.keystore

生成签名文件时,提示输入姓名单位之类都可以直接回车忽略,最后输入y确认即可

对apk文件签名

jarsigner -verbose -keystore my.keystore -keypass 123456 -storepass 123456 -signedjar main.apk main_unsigned.apk my.keystore

接下来就可以安装测试了

时间:2019-06-20 12:52:14 阅读(9) 最新文章 更多 1 求 a 的 b 次方对 p 取模的值 2019-07-07 2 可汗学院公开课统计学 第11到16集 样本 总体 方差 标准差 诸方差公式 2019-07-07 3 Linux 用户组 2019-07-07 4 JS获取访客IP进行自动跳转 2019-07-07 5 Eclipse link方式安装第三方插件(PyDev插件安装) 2019-07-07 6 centos中安装python3.7 2019-07-07 7 请判断一个链表是否为回文链表。 2019-07-07 8 Python中日期、时间的运用 2019-07-07 9 奇点云三角肌「秀肌肉」,端化目标检测模型再获突破 2019-07-07 10 JS常见知识点 2019-07-07 最新资讯 更多 1 苹果iPhone第一季度在印度销量暴跌42% 2019-07-06 2 苹果实用主义者威廉姆斯能否胜任艾维职责? 2019-07-06 3 波士顿动力Atlas机器人完美自主导航,这次是真的! 2019-07-06 4 缓存数据库架构过时了,是时候采用混合内存架构了 2019-07-07 5 让华为吃了败诉的CNEX Labs到底有何过人之处? 2019-07-06 6 网易云音乐发声明怒斥谣言:提供线索经采用奖励10万元 2019-07-06 7 Chrome 浏览器新增屏蔽不良广告的功能,让广告更加友好 2019-07-06 8 任天堂总裁:我们必须跟上云游戏技术发展的步伐 2019-07-07 9 TIOBE 6月排行:Perl成为过分炒作Python的受害者? 2019-07-06 10 美国加州遭20年来最强地震 看苹果新总部如何防震 2019-07-06 总结

以上是内存溢出为你收集整理的Android使用WebView打包网页成app全部内容,希望文章能够帮你解决Android使用WebView打包网页成app所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存