PhoneGap2.9.0本地将html打包成Android应用
来源:互联网 发布:大数据应用网站 编辑:程序博客网 时间:2024/05/22 15:38
PhoneGap的在线打包有大小限制,超过30M的包无法在线打包。当然,可以把包里面的图片、声音文件去掉,然后打包。下载以后,解包,重新打包并签名。蛮麻烦的。
本地打包的简单方法如下:
下载安装Java环境。
下载安装ADT。http://developer.android.com/sdk/index.html
打开ADT,新建一个安卓应用项目
输入名称啥的,然后就可以一路下一步
可以选择下项目位置,我的是默认的。
这里可以选择图标。
选择第一个
这个时候,一个安卓项目就建好了。这个时候运行,会看到默认的样子,不管他,无视。
将PhoneGap目录下的android目录下的jar文件拷贝到项目的libs目录下
将xml目录拷贝到项目的res目录下
在assetc目录下,建立一个www目录,下面放html内容。为了偷懒,我把phonegap例子里面的内容拷贝过来了。
修改Java代码:
- package com.myexample.helloworld;
- import android.os.Bundle;
- import org.apache.cordova.*;
- public class MainActivityextends DroidGap
- {
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- // Set by <content src="index.html" /> in config.xml
- super.loadUrl(Config.getStartUrl());
- //super.loadUrl("file:///android_asset/www/index.html")
- }
- }
- /*
- * 下面是adt生成的代码,注释掉
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }*/
修改一下项目根目录下的AndroidManifest.xml和res/xml目录下的config.xml文件
AndroidManifest.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.myexample.helloworld"
- android:hardwareAccelerated="true"
- android:versionCode="1"
- android:versionName="1.0"
- android:windowSoftInputMode="adjustPan">
- <supports-screens
- android:anyDensity="true"
- android:largeScreens="true"
- android:normalScreens="true"
- android:resizeable="true"
- android:smallScreens="true"
- android:xlargeScreens="true"/>
- <uses-permissionandroid:name="android.permission.CAMERA"/>
- <uses-permissionandroid:name="android.permission.VIBRATE"/>
- <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
- <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
- <uses-permissionandroid:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
- <uses-permissionandroid:name="android.permission.INTERNET"/>
- <uses-permissionandroid:name="android.permission.RECEIVE_SMS"/>
- <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
- <uses-permissionandroid:name="android.permission.RECORD_VIDEO"/>
- <uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
- <uses-permissionandroid:name="android.permission.READ_CONTACTS"/>
- <uses-permissionandroid:name="android.permission.WRITE_CONTACTS"/>
- <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
- <uses-permissionandroid:name="android.permission.GET_ACCOUNTS"/>
- <uses-permissionandroid:name="android.permission.BROADCAST_STICKY"/>
- <application
- android:debuggable="true"
- android:hardwareAccelerated="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <activity
- android:name="com.myexample.helloworld.MainActivity"
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
- android:label="@string/app_name"
- android:theme="@android:style/Theme.Black.NoTitleBar">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- <uses-sdk
- android:minSdkVersion="7"
- android:targetSdkVersion="17"/>
- </manifest>
config.xml
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
- <widget
- id="com.myexample.helloworld"
- version="2.0.0"
- xmlns="http://www.w3.org/ns/widgets">
- <name>
- helloworld
- </name>
- <description>
- A sample Apache Cordova application that responds to the deviceready event.
- </description>
- <author
- email="dev@cordova.apache.org"
- href="http://cordova.io">
- Apache Cordova Team
- </author>
- <accessorigin="*"/>
- <!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
- <contentsrc="index.html"/>
- <preference
- name="loglevel"
- value="DEBUG"/>
- <!--
- <preferencename="splashscreen"value="resourceName"/>
- <preferencename="backgroundColor"value="0xFFF"/>
- <preferencename="loadUrlTimeoutValue"value="20000"/>
- <preferencename="InAppBrowserStorageEnabled"value="true"/>
- <preferencename="disallowOverscroll"value="true"/>
- -->
- <featurename="App">
- <param
- name="android-package"
- value="org.apache.cordova.App"/>
- </feature>
- <featurename="Geolocation">
- <param
- name="android-package"
- value="org.apache.cordova.GeoBroker"/>
- </feature>
- <featurename="Device">
- <param
- name="android-package"
- value="org.apache.cordova.Device"/>
- </feature>
- <featurename="Accelerometer">
- <param
- name="android-package"
- value="org.apache.cordova.AccelListener"/>
- </feature>
- <featurename="Compass">
- <param
- name="android-package"
- value="org.apache.cordova.CompassListener"/>
- </feature>
- <featurename="Media">
- <param
- name="android-package"
- value="org.apache.cordova.AudioHandler"/>
- </feature>
- <featurename="Camera">
- <param
- name="android-package"
- value="org.apache.cordova.CameraLauncher"/>
- </feature>
- <featurename="Contacts">
- <param
- name="android-package"
- value="org.apache.cordova.ContactManager"/>
- </feature>
- <featurename="File">
- <param
- name="android-package"
- value="org.apache.cordova.FileUtils"/>
- </feature>
- <featurename="NetworkStatus">
- <param
- name="android-package"
- value="org.apache.cordova.NetworkManager"/>
- </feature>
- <featurename="Notification">
- <param
- name="android-package"
- value="org.apache.cordova.Notification"/>
- </feature>
- <featurename="Storage">
- <param
- name="android-package"
- value="org.apache.cordova.Storage"/>
- </feature>
- <featurename="FileTransfer">
- <param
- name="android-package"
- value="org.apache.cordova.FileTransfer"/>
- </feature>
- <featurename="Capture">
- <param
- name="android-package"
- value="org.apache.cordova.Capture"/>
- </feature>
- <featurename="Battery">
- <param
- name="android-package"
- value="org.apache.cordova.BatteryListener"/>
- </feature>
- <featurename="SplashScreen">
- <param
- name="android-package"
- value="org.apache.cordova.SplashScreen"/>
- </feature>
- <featurename="Echo">
- <param
- name="android-package"
- value="org.apache.cordova.Echo"/>
- </feature>
- <featurename="Globalization">
- <param
- name="android-package"
- value="org.apache.cordova.Globalization"/>
- </feature>
- <featurename="InAppBrowser">
- <param
- name="android-package"
- value="org.apache.cordova.InAppBrowser"/>
- </feature>
- <!-- Deprecated plugins element. Remove in 3.0 -->
- <plugins>
- </plugins>
- </widget>
然后,就可以运行了
PhoneGap的官方方法不是这样的,是用命令行生成默认包的。但是要装好几个东西。具体可以看PhoneGap包里面的readme文档。
0 0
- PhoneGap2.9.0本地将html打包成Android应用
- PhoneGap2.9.0本地将html打包成Android应用
- PhoneGap2.9.0本地将html打包成Android应用
- PhoneGap2.9.0本地将html打包成Android应用
- PhoneGap2.9.0本地将html打包成Android应用
- PhoneGap2.9.0本地将html打包成Android应用
- Phonegap2.9.0本地打包html成ios应用
- Phonegap2.9.0本地打包html成ios应用
- Phonegap2.9.0本地打包html成ios应用
- Phonegap2.9.0本地打包html成ios应用
- Phonegap3.4.0打包本地html成android应用
- 用phonegap将html打包成Android应用
- 让网页装进Android手机(将html+css+js打包成Android应用)(简单的)
- phonegap5.0+android studio本地打包应用
- phonegap5.0+android studio本地打包应用
- windows环境下将程序打包成Android应用apk
- 将html文件打包成apk
- phoneGap2.9.0环境搭建
- 关于hibernate调用存储过程
- HDU1588-Gauss Fibonacci(矩阵快速幂+等比数列二分求和)
- 浏览器的工作原理(一)
- 删除当前用户所有表
- Codeforces 67A. Partial Teacher
- PhoneGap2.9.0本地将html打包成Android应用
- chapter5
- 只有一个broker的例子
- django book笔记--问题2(chapter4 importError)
- 【算法导论学习-29】动态规划经典问题02:最长公共子序列问题(Longest common subsequence,LCS)
- PhoneGap+jQuery mobile下,页面切换出现的闪烁问题。
- 快速幂算法(百度文库)
- css外接所有用法示例
- offline.appcache,html5缓存清单文件简单说明