2011-11-09 4 views
2

내 인터넷 사이트에서 콘텐츠를 가져와 목록보기 및 텍스트보기에 표시하고 싶습니다. HTML을 파싱하기 위해 jsoup 라이브러리를 사용했지만, 제 앱은 25 MB 램을 사용하고 있습니다.Android에서 인터넷에서 데이터 가져 오기

응용 프로그램의 램 효율성을 어떻게 향상시킬 수 있습니까?

답변

3

구문 분석하고 네이티브 뷰로 변환하는 대신 웹보기로 표시 할 수 있습니다.

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //.. Other setup ... 
     //Add webview  
     WebView myWebView = (WebView) findViewById(R.id.webview); 
     myWebView.getSettings().setJavaScriptEnabled(true); 
     myWebView.addJavascriptInterface(new JSBridge(), "JSJavaBridge"); 
     myWebView.loadUrl("http://my.testdomain.com/theSharedPage.html"); 
    } 

JS 및 Java 간의 상호 작용을 처리하기 위해 JSBridge 클래스에 메서드를 작성합니다. 예 :

private class JSBridge 
{ 
    public playSound(){ 
     mp = MediaPlayer.create(Test.this, R.raw.mysound); 
     mp.start(); 
    } 
} 

그런 다음 HTML에서 JSBridge를 사용하여 Java에서 소리를 재생합니다.

<script type="text/javascript"> 

      $(document).ready(function() { 
       $('#playSound').click(function() { 

        if(typeof JSJavaBridge != 'undefined') 
          JSJavaBridge.playSound(); 
       }); 
      }); 
    </script> 
+0

아니요. 내 사이트가 휴대 전화에 적합하지 않기 때문에 원하지 않습니다. 인터넷에서 문자열을 가져 와서 원하는대로 편집해야합니다. – jbgamer

+0

현대적인 반응 형 디자인 기법을 사용하여 모바일 장치에 맞게 조정할 수 있도록 사이트/페이지를 다시 작성하는 것이 가장 이상적입니다. 페이지 스크래핑을 사용하면 유지 관리의 악몽입니다. 그러나 다른 방법이 없다면 실제로 문자열과 함께 WebView를 사용할 수 있습니다. 페이지를 다운로드하고 코드에서 수정 한 다음 WebView에서 문자열을로드 할 수 있습니다. * 문자열 str = " FOO"; webview.loadData (str, "text/html", null); * 행운을 빈다. – eSniff

+0

파서를 사용해야하는 다른 방법이 없습니까? 또한 listview.How의 비트 맵을 사용하여 비트 맵에 대한 RAM 효율성을 향상시킬 수 있습니까? – jbgamer

관련 문제