新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用Eclipse開發iPhone Web 應用程序

        用Eclipse開發iPhone Web 應用程序

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

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

        本文引用地址:http://www.104case.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() 將處理類描述、字段、構造函數和方法的輸出。后兩種類型是 ExecutableMemberDoc 的子類,因此打印關于其參數和已拋出異常的附加信息。

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

          性能問題

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

          清單 5. Doclet 代碼將迭代每個包,然后為每個類創建文件
                       
          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

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


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

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

          iPhone 開發的前景

          2007 年 10 月,Steve Jobs 宣稱 Apple 將于 2008 年 2 月發布 iPhone 。詳細信息很少,因為這是在 2007 年 12 月編寫的,但是 將允許您在不需要使用 Safari 的情況下創建能夠在 iPhone 上本機運行的應用程序。給定 iPhone 底層架構之后,開發平臺很可能是類似于 Mac OS X 的 Cocoa 和 Objective-C。Apple 主管人員的最新評論暗示第三方應用程序將需要接受某種類型的認證過程。

          通過在本機運行,需要高級動畫、圖形和網絡訪問的應用程序將從中獲益。不過,即使在發布了 之后,iPhone 的 開發仍會是一個吸引人的主題。 應用程序很容易創建和部署。諸如 Aptana 和 iUi 之類的工具簡化了開發,并且能夠快速創建 Web 應用程序。正如 iDoc 所展示的,沒有必要等待 SDK 的發布:使用現有的工具,您可以創建具有本機界面外觀的全功能 iPhone Web 應用程序。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 满洲里市| 壶关县| 吉安县| 邵阳县| 梅河口市| 东山县| 璧山县| 鄂托克前旗| 安丘市| 芮城县| 无锡市| 印江| 泗水县| 汝城县| 教育| 泗洪县| 宽城| 五台县| 清新县| 沙湾县| 西乌珠穆沁旗| 渭南市| 法库县| 江都市| 柳江县| 边坝县| 玉环县| 兰考县| 姚安县| 恭城| 甘洛县| 阳新县| 新津县| 安化县| 红安县| 普兰店市| 泽普县| 万州区| 涞源县| 宣威市| 漳平市|