• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用Eclipse開發(fā)iPhone Web 應(yīng)用程序

    用Eclipse開發(fā)iPhone Web 應(yīng)用程序

    作者:Adam Houghton , 高級軟件開發(fā)人員 時間:2008-08-22 來源:21IC 中國電子網(wǎng) 收藏

      清單 4. 輸出詳細信息頁面的 Doclet 代碼
                   
      private void printDetail(PrintStream p, ProgramElementDoc doc,

    本文引用地址:http://www.czjhyjcfj.com/article/87266.htm

        String id, String name) {

        divHeader(p, id, name, "panel");

        textHeader(p, null);

        textRow(p, getSignature(doc));

        textRow(p, getCommentText(doc.commentText()));

        textFooter(p);

        if (doc instanceof ExecutableMemberDoc) {

            printMethodDetail(p, (ExecutableMemberDoc) doc);

        }

        divFooter(p);

      }

     

      private void printMethodDetail(PrintStream p, ExecutableMemberDoc field) {

        if (field.parameters().length > 0) {

            textHeader(p, "Parameters");

            for (int i=0; i<field.paramTags().length; i++) {

                textRow(p, "<b>" + field.parameters()[i].typeName() + " "

                        + field.paramTags()[i].parameterName()

                        + "</b>: "

                + getCommentText(field.paramTags()[i].parameterComment()));

            }

            textFooter(p);

        }

        if (field.throwsTags().length > 0) {

            textHeader(p, "Throws");

            for (int i=0; i<field.throwsTags().length; i++) {

                textRow(p, "<b>" +  field.throwsTags()[i].exceptionName()

                        + "</b>: "

                + getCommentText(field.throwsTags()[i].exceptionComment()));

            }

            textFooter(p);

        }

      }

       代碼是通用的,這樣 printDetail() 將處理類描述、字段、構(gòu)造函數(shù)和方法的輸出。后兩種類型是 ExecutableMemberDoc 的子類,因此打印關(guān)于其參數(shù)和已拋出異常的附加信息。

      Aptana 的 Preview 模式將幫助調(diào)試輸出文件。在每次迭代后,您可以快速單擊該查找已設(shè)計界面中的不一致性。但是,使用 Preview 模式可以掩蓋性能問題:現(xiàn)代計算機的運行速度比 的 620-MHz ARM 處理器快三至五倍。此外,用戶經(jīng)常通過速度慢的蜂窩網(wǎng)絡(luò)下載頁面,因此必須用實際 運行您的

      性能問題

      當(dāng)我在 iPhone 中測試查看 iDoc 時,我發(fā)現(xiàn)輸出一個大型 HTML 文件將導(dǎo)致跳幀和性能下降。要解決此問題,創(chuàng)建一個用于導(dǎo)航包名/類名的主文件,然后為帶有注釋和方法細節(jié)的每個類創(chuàng)建獨立文件(參見清單 5)。雖然此過程將生成大量文件,但是各個文件大小都非常小,并且運行得十分流暢。

      清單 5. Doclet 代碼將迭代每個包,然后為每個類創(chuàng)建文件
                   
      out = new FileOutputStream(index);

      p = new PrintStream(out);

      printHeader(p);

       PackageDoc[] packages = root.specifiedPackages();

      Arrays.sort(packages);

       printPackages(p, packages);

       for (int i=0; i<packages.length; i++) {

        printPackageDetail(p, packages[i]);

      }

      for (int i=0; i<packages.length; i++) {

        ClassDoc[] classes = packages[i].allClasses();

        Arrays.sort(classes);

        for (int j=0; j<classes.length; j++) {

            // Creating a separate file for each class.

            PrintStream p2 = new PrintStream(new FileOutputStream(getFilename(classes[j])));

            printClassDetail(p2, classes[j]);

            p2.close();

        }

      }

      printFooter(p);

      p.close();

       運行 iDoc

      在經(jīng)過該性能增強之后,就能運行 iDoc 了。為 OpenJDK 中的 51 個 java.* 和 javax.* 包(表示 1,304 個類)生成 Javadoc,然后把所有內(nèi)容上傳到 服務(wù)器中。這包括超過 16 MB 的文件,但是主要導(dǎo)航頁面只有 112 KB,并且每個單獨類的詳細信息頁面平均為 13 KB。即使在使用 EDGE 網(wǎng)絡(luò)時,應(yīng)用程序也能夠快速響應(yīng)。如果您已經(jīng)擁有了 iPhone,請訪問 iDoc 站點(請參閱 參考資料)并嘗試使用,也可以下載 iDoc 來為您自己的代碼庫生成特定于 iPhone 的 Javadoc。圖 11 顯示了最終的應(yīng)用程序。


    圖 11. 用于 iPhone 的全部 51 個包的 Javadoc
     

      可能對 iDoc 進行的擴展包括支持顯示 Java 5 泛型,以及更智能地捕捉 Javadoc 注釋內(nèi)的標(biāo)記來實現(xiàn)頁面之間的鏈接。如果您有興趣添加 iDoc 的功能,則可以下載完整的源代碼.

      iPhone 開發(fā)的前景

      2007 年 10 月,Steve Jobs 宣稱 Apple 將于 2008 年 2 月發(fā)布 iPhone 。詳細信息很少,因為這是在 2007 年 12 月編寫的,但是 將允許您在不需要使用 Safari 的情況下創(chuàng)建能夠在 iPhone 上本機運行的應(yīng)用程序。給定 iPhone 底層架構(gòu)之后,開發(fā)平臺很可能是類似于 Mac OS X 的 Cocoa 和 Objective-C。Apple 主管人員的最新評論暗示第三方應(yīng)用程序?qū)⑿枰邮苣撤N類型的認證過程。

      通過在本機運行,需要高級動畫、圖形和網(wǎng)絡(luò)訪問的應(yīng)用程序?qū)闹蝎@益。不過,即使在發(fā)布了 之后,iPhone 的 開發(fā)仍會是一個吸引人的主題。 應(yīng)用程序很容易創(chuàng)建和部署。諸如 Aptana 和 iUi 之類的工具簡化了開發(fā),并且能夠快速創(chuàng)建 Web 應(yīng)用程序。正如 iDoc 所展示的,沒有必要等待 SDK 的發(fā)布:使用現(xiàn)有的工具,您可以創(chuàng)建具有本機界面外觀的全功能 iPhone Web 應(yīng)用程序。


    上一頁 1 2 3 4 下一頁

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 四平市| 岚皋县| 长沙市| 灵丘县| 荥阳市| 河曲县| 广州市| 冀州市| 武功县| 葫芦岛市| 祥云县| 界首市| 余江县| 陆丰市| 巴塘县| 云安县| 丰县| 南靖县| 漠河县| 玛多县| 龙陵县| 惠东县| 福州市| 兰州市| 东乌珠穆沁旗| 乐昌市| 纳雍县| 金溪县| 丁青县| 安西县| 永安市| 遂溪县| 施秉县| 赫章县| 芒康县| 铜陵市| 淅川县| 芷江| 岑巩县| 当阳市| 抚顺市|