1. http://phonegap.com/start 로 접속을 합니다.

자신의 취향에 맞는 버전의 폰갭을 받는다.

(필자는 1.6.1 을 받아서 테스트 하였음)


2. 그 다음은 Android Native Language로 App을 만들 때 처럼 이클립스에서 New Android Application Projet 를 만든다.


3. asset 폴더 하위에 www 폴더를 만들고 cordova-1.6.1js 붙여 넣는다.


4. libs 폴더 하위에 cordova-1.6.1.jar 를 붙여 넣은 뒤 프로젝트에서 사용할 수 있게 Build Path에서 add Jars 하여 설정 해준다.


5. res 폴더 하위에 xml 폴더를 붙여 넣는다. (cordova.xml, plugins.xml 이 들어있는 xml폴더)


6. 프로젝트(PhoneGapHello)/AndroidManifest.xml 으로 들어가서


AndroidManifest.xml 안에서 <uses-sdk android:minSdkVersion="8" /> 코드를 찾으세요.

그리고 그 위에 아래 코드를 붙여 넣으세요.


<supports-screens

android:largeScreens="true"

android:normalScreens="true"

android:smallScreens="true"

android:resizeable="true"

android:anyDensity="true"

/>

<uses-permission android:name="android.permission.CAMERA" />

<uses-permission android:name="android.permission.VIBRATE" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.RECEIVE_SMS" />

<uses-permission android:name="android.permission.RECORD_AUDIO" />

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<uses-permission android:name="android.permission.READ_CONTACTS" />

<uses-permission android:name="android.permission.WRITE_CONTACTS" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />

<uses-permission android:name="android.permission.BROADCAST_STICKY" />


그리고 <activity ..... > 태그에 아래 코드를 추가하세요.

android:configChanges="orientation|keyboardHidden"




그럼 위와같은 코드가 된다.


7. src/ 하위에 있는 MainActivity.java 를 아래와 같이 변경해 준다.


package com.example.phonegaphello;


import android.os.Bundle;

import org.apache.cordova.*;


public class MainActivity extends DroidGap {


@Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        super.loadUrl("file:///android_asset/www/index.html");

    }


}


8. asset/www 아래에 index.html 테스트용 페이지 생성 해준다.


<!DOCTYPE HTML>

<html>

<head>

<title>PhoneGap</title>

<script type="text/javascript" charset="utf-8" src="cordova-1.x.x.js"></script>

</head>

<body>

<h1>Hello World</h1>

</body>

</html>


9. 확인해보자.

keytool -genkey -alias eye -keyalg RSA -validity 10000 -keystore eye.keystore



cmd 에서 위치에서 .keystore 생성 후


이클립스 프로젝트 오른쪽 마우스 > Android tools > Export Signed Application Package 


usexisting 으로 빼면 된다.

안드로이드 개발을 위한 이클립스 셋팅


eclipse 화면 상단 Help > Install New Software… 를 클릭 하면 설치 화면이 나오게 됩니다. 

해당 화면에서 오른쪽 Add.. 클릭 하면 작은 팝업창 Add Repository 가 나오게 되는데요 

여기서 다음 같이 입력 합니다. 


Name : ADT Puugin Location : https://dl-ssl.google.com/android/eclipse 를 입력 하고 OK 를 클릭 합니다. 


잠시후 화면에 Developer Tools 나오게 되는데요 좌측 체크박스에 체크를 하고 하단 부분에서 Show only the latest versions of available software 와 Group items by category, Contact all update sites during install to find required soware 부분에 체크를 한 후 하단 Next 를 클릭 합니다. 


이후 Install Details 화면에서 다시 한번 Next 를 클릭 합니다. 

다음 화면에서 사용에 대한 동의 I acept the terms of the license agreements 를 체크 하고 Finish 를 클릭 합니다. 정상적으로 설치가 이루어지면 보안 경고창이 나타는데요 이때 OK 를 클릭 합니다. 


잠시후 설치가 완료 되면 eclipse 를 다시 시작해야 합니다.

System.getProperty() 용법, 시스템 프로퍼티

시스템 프로퍼티란 시스템 환경에 관한 정보를 말한다.
System 클래스에 있는 getProperty() 메소드를 이용하면, 현재 사용하고 있는 환경 정보를 얻을 수 있다.

import java.util.*;
.
.
String version = System.getProperty("java.version");


주요 프로퍼티는 아래와 같다.

java.version : Java의 버전 : 1.4.2_13

Java.vendor : Java의 벤더 (공급자) : Sun Microsystems Inc.

java.vendor.url : Java의 벤더의 URL : http://java.sun.com

java.home : Java를 인스톨한 디렉토리 : c:\j2sdk1.6.2_13

java.class.version : Java 클래스의 버전 : 48

java.class.path : Java 클래스가 존재하는 경로 : c"\Java

java.ext.dir : 확장기능 클래스를 포함하는 디렉토리 : null (미설정의 경우)

os.name : OS의 이름 : Window 7

os.arch : OS의 아키텍처 : x86

os.version : OS 의 버전 : 6.1

file.separator : 파일을 구분하는 문자 : \(Unix 에서는 /)

path.separator : 경로를 구분하는 문자 : (Unix 에서는 :)

line.separator : 행을 구분하는 문자(개행코드) : \n

user.name : 사용자 계정 : j

user.home : 사용자 홈 디렉토리 : c:\Document and Settings\j

user.dir : 현재 작업 디렉토리 : c:\Java





'Server Enterprise > Java' 카테고리의 다른 글

[decompile] java decompiler  (0) 2014.12.30
[Encode] 한글 인코딩  (0) 2014.08.15
[Image Object] width, height  (0) 2014.03.11
Java 멤버와 변수에 대한 고찰  (0) 2013.01.08
POJO 개념  (0) 2013.01.05

<s:iterator value="fileList" status="fileStat">


<s:if test="#fileStat.last == true">

<td><input type="button" value="add" onClick="addFile();" /></td>

</s:if>


<s:else>

<td>

<input type="button" value="delete" onClick="delFile(parentNode.parentNode.rowIndex);" />

</td>

</s:else>


</s:iterator>

'Server Enterprise > Struts2' 카테고리의 다른 글

[Struts2] Session 과 로그인  (0) 2013.07.11
[Struts2] File Download  (0) 2013.05.09
[Struts2] Multi File Upload  (0) 2013.05.09
Struts2 Action과 Value Object 매핑  (0) 2013.02.21
Struts2 기본 셋팅과 사용법  (0) 2013.02.21

확인 결과 사용하고 계신 윈도우가 손상을 입었을 경우 

발생하는 현상입니다


윈도우 재설치가 가장 좋은 방법이지만, 재설치가 곤란하시다면 

아래 방법을 참고하면 될 듯 하네요.


1. 시작 > 실행 

2. cmd 입력 

3. sc stop WerSvc 입력 

4. sc config WerSvc start= disabled 입력

'Common' 카테고리의 다른 글

Have a fun ! 해커 타이핑  (0) 2014.01.22
[스킨] 티스토리용  (0) 2013.11.01
[Proxy] 사이트  (0) 2013.04.17
자격증 관련 URL  (0) 2013.04.15
교육 url  (0) 2013.03.04

파일 다운로드에 대해서도 알아보자.


struts.xml

<action name="fileDownload" class="jh.board.action.FileDownloadAction">

<result type="stream">

<param name="contentType">binary/octet-stream</param>

<param name="contentLength">${contentLength}</param>

<param name="contentDisposition">${contentDisposition}</param>

<param name="inputName">inputStream</param>

<param name="bufferSize">4096</param>

</result>

</action>


download.java

private String basePath;

private String fileName;

private String contentType;

private String contentDisposition;

private InputStream inputStream;

private long contentLength;

getter/setter 함수 선언;


public String execute() throws Exception {

String inputPath = basePath + "/" + fileName; // 파일을 저장해놓은 경로와 이름

File f = new File(inputPath); // 파일 경로+이름 을 이용하여 파일 생성

setContentLength( f.length() );

setContentDisposition("attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));

setInputStream(new FileInputStream(inputPath));

return SUCCESS;

}


글 작성시, 스트럿츠로 간단하게 업로드 되게 하는 방법을 알아 보자.


writeForm.jsp

<s:form action="/write.do" enctype="multipart/form-data">

<s:file name="uploads" />

<s:file name="uploads" />

<s:file name="uploads" />

<s:submit>
</s:form>

writeAction 에서건 VO 에서건 리스트 파일형태로 들고 와야한다.
private List<File> uploads = new ArrayList<File>();
private List<String> uploadsFileName = new ArrayList<String>();
private List<String> uploadsContentType = new ArrayList<String>();
List<File>과 List<String>의 getter/setter 선언.


위와 같이 uploads 에 한해 "uploadsFileName" 처럼 명명하여 파일 이름을 쓸 수 있다.


WirteAction.java

public String execute() throws Exception {

String filePath = vo.FILEPATH; // 파일 저장 위치

List<File> uploads = vo.getUploads(); // List 형태의 upload file 들

List<String> uploadsFileName = vo.getUploadsFileName(); 


bo.write(vo); 

if (uploads != null) {

for (int i=0 ; i<uploads.size(); i++) {

String saveFileName = System.currentTimeMillis() + "_"

+ uploadsFileName.get(i);

       File destFile = new File(filePath + saveFileName);

       

       fVo.setRealfilename( uploadsFileName.get(i) );

       fVo.setSavefilename( saveFileName );

       

       FileUtils.copyFile(uploads.get(i), destFile);  

       bo.saveFile(fVo);

   }

}

return SUCCESS;

}


retrieve.jsp

<s:iterator value="list" status="stat">

<s:url id="download" action="fileDownload">

<s:param name="basePath" value="basePath" />

<s:param name="fileName">

<s:property value="list[#stat.index].name" />

</s:param>

</s:url>

<li><s:a href="%{download}">

<s:property value="list[#stat.index].name" /></s:a><br /></li>

</s:iterator>




상단의 taglib 선언

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions"  prefix="fn"%>


c:out value = 문법 

${fn:replace(searchResult.mobileNewsMLD.title[news.index], '"', '&quot;')}



'Server Enterprise > JSTL' 카테고리의 다른 글

[JSTL] List Data 출력  (0) 2013.03.27
[JSTL] 문자열 연결하여 출력  (0) 2013.03.18

str = 내용;

searchStr = 바꾸기 전 문자열(찾을 문자열);

replaceStr = 바꾼 후 문자열


while (str.indexOf(searchStr) != -1) {

  str = str.replace(searchStr, replaceStr);

}

+ Recent posts