freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

嵌入式瀏覽器開發(fā)—計算機(論文)-預覽頁

2025-01-08 09:31 上一頁面

下一頁面
 

【正文】 產品廣泛應用于手持設備、機頂盒、游戲機等產品。但顯然為了簡化設計, Netfront 使用了一定的權宜手段。是開放源碼項目。是開放源碼項目。網址是: 以上主要介紹了開放源碼的嵌入式瀏覽器,因為其對本項目具有實際的參考價值。 HTML 詞法分析是瀏覽器設計的基礎環(huán)節(jié)之一,也是整個設計過程中重要的前端工作,其數據結構的擬定與接下來的語法分析和布局算法密切相關,詞法分析的效率與準確性、容錯性也關系到整個瀏覽器設計的質量。布局算法的好壞直接關系到界面的輸出效果,但布局算法也是要根據 GUI 所能實現的輸出效果來設計的,所以, GUI 往往成為系統的瓶頸,如果 GUI 提供的支持有限,即使有再好的布局算法,也是紙上談兵,無用武之地。第二在于主瀏覽窗體中的圖形元素的輸出(通常以自畫控件的方式)。這其中的機制將在后面專門介紹。 我們也可以看到,要設計效果較好的瀏覽器產品,決不是三五個人、兩三條槍就能辦到的,參與工作的人員不僅需要有相關經驗,還需要有一定的投入,一方面對程序員艱苦的工作給予鼓勵,另一方面也可能需要購買一些成熟的開發(fā)包,在基礎的開發(fā)平臺、測試平臺上也要有一定的投資,總的來說,開發(fā)自主技術的瀏覽器產品是有一定的風險的,這也是國內目前相關產品為數不多的原因。是瀏覽器開發(fā)前期準備工作所解決的問題??紤]到 GUI 是可以成為獨立模塊的,如瀏覽器 ZEN 的設計,我們決定使用 GTK,待時機成熟可換用其它平臺,也并非難事。 需要實現的包括: (1) 界面:包括窗口,菜單,輸入框,工具條,滾動條等的支持。 需要考慮的功能: (1) JavaScript 支持 (2) 漢字支持 (3) 圖片格式支持 (4) 表單支持 (5) 頁面元素的消息響應 人員分工 由于情況的變動,造成了人員比較緊張,在前期準備工作中,人力充沛,使得收集的資料比較完備,打下了較好的基礎。 下面將介紹一個 HTML 詞法分析器 —— Bit Token 的設計思路。 元素的分析:提取元素的名稱、屬性和值域。 int curPosition。 BitTokenList *tokenList。 BitTokenContext 是用于存儲當前待分析網頁全局屬性的數據結構,其中TokenList 是核心的元素節(jié)點鏈表。 //元素節(jié)點 struct TokenList *priou。 //節(jié)點類型,如定義的 HTML_BODY, HTML_TXT等。 //元素屬性鏈表,因為可能有多個屬性,所以使用鏈表存儲 BitTokenAttrList *attrList_tail。 (3) 如果遇到回車、空格,則跳過。 (6) 循環(huán)以上操作,直到該網頁分析完畢。 分段進行詞法分析的算法復雜度明顯增加,比如,當每段定為 1024 字節(jié),在第 1024 字節(jié)處,可能正好將一個完整元素截斷,按常規(guī)分析方法會造成錯誤。 下面是一段很簡單的 HTML 代碼。 具有以下主要功能: 智能提取網頁中的文字信息,智能排版,并可在進行編輯后保存。 其主要設計思路是,在 Bit Token 詞法分析器的基礎上,結合瀏覽器布局的基本算法,對影響到 TXT 版面效果的元素進行處理。使用常規(guī)的簡單算法進行 HTML 到TXT 的轉換無法解決這些問題。并可以對網頁中的元素進行統計和語法校驗。 Bit Token 在應用中存在的問題及修改意見 由于 HTML 的標記多是成對出現的,并且存在 SCRIPT這樣的特殊元素,其內容為 Javascript 程序,函數的字符串參數等可能包含其它的元素標記。盡管如此,對 SCRIPT的特殊處理還是有待完善,盡管這同時也會帶來一些問題,需要進行大量的測試,來保證新加入代碼的穩(wěn)定性。而且被廣泛使用,實際已成為了進行 JavaScript 應用開發(fā)的標準平臺。 生成的 shell 程序,對比瀏覽器對 JavaScript 的 支持,相同之處是使用相同的包含 JavaScript runtime 的 Library 或 DLL,我們把這部份相同的Library 或 DLL 稱為 JavaScript API, 我們實際開發(fā) JavaScript 應用,也是在JavaScript API 基礎上工作,而不用過多考慮其內部的實現。瀏覽器主體程序的設計者可以通過 JavaScript Engine,方便的實現各種應用,畢竟 JavaScript API 太基礎了,直接使用不太方便。 初始化 cx: cx = JS_NewContext(rt, STACK_CHUNK_SIZE)。 定義系統函數: JS_DefineFunctions(cx, globalObj, g_functions)。 RegisterClassRect (cx,globalObj)。 初始化定時器: TDTimerListInit()。眼睛 /abr img id=image0 src=/img /html 當鼠標移到文字上時,觸發(fā)事件 mouseover,調用 ChangeImage()函數,使得圖像源 (SRC)發(fā)生變化,重新調入新圖片。 注冊過程在 BuildModel 中進行。 初始化該對象 : TD_JSXMLElementClassInit(JS_GetGlobalContext(), (void **)amp。ElementClass,proto,JSPROP_ENUMERATE)。 } 將對象加入 : JS_SetPrivate(JS_GetGlobalContext(), (JSObject *)*aReturn, aElement)。 問題 3:如何建立 Javascript 對象與結點樹上結點的對應? 解決 : Javascript 對象與結點樹是同時生成的,它們的共同性質是結點具有相同屬性, Javascript 對象根據 ID 屬性查找樹,找到要操作的對應結點。 處理該 widget 對該消息的響應。jval)。 POSIX:該標準最初由 IEEE 開發(fā)的標準族,部分已經被 ISO 接受為國際標準。 XPG: X/Open 可移植性指南。GNU 的 C 函數庫,即 glibc,是 Linux 上最重要的函數庫,它定義了 ISO C 標準指定的所有的庫函數,以及由 POSIX 或其他 UNIX 操作系統變種指定的附加特色,還包括有與 GNU 系統相關的擴展。圖形文件操作函數庫包括: libungif、 libtiff、 libpng、 Imlib, libjpeg 等,可分別用來操作 GIF、 TIFF、 PNG、 JPEG 以及其他一些格式圖形 文件。 errno 中包含有錯誤代碼。 在 Linux 中,我們經??吹降氖嵌x非常簡單的函數接口和變量名稱。如果程序的縮進超過 3 級,則應考慮重新設計程序。如下所示: int function(int x, int y) { if (x == y) { ... } else { ... } return 0。不應過分強調注釋的作用,應盡量采用好的編碼風格而不是添加過多的注釋。利用 gcc 命令可同時編譯并連接 C 和 C++ 源程序。 但是, gcc 命令只能編譯 C++ 源文件,而不能自動和 C++ 程序使用的庫連接。 DMACRO 以字符串“ 1”定義 MACRO 宏。 GNU 調試器可利用該信息。 m486 針對 486 進行代碼優(yōu)化。 O 或 O1 優(yōu)化生成代碼。通常用在建立共享庫時。 Wall 生成所有警告信息。 在可以使用 gdb 調試程序之前,必須使用 g 選項編譯源文件。 fPIC 選項產生位置獨立的代碼。這些工作包括:如果僅修改了某幾個源文件,則只重新編譯這幾個源文件;如果某個頭文件被修改了,則重新編譯所有包含該頭文件的源文件。 當修改了其中某個源文件時,如果其他源文件依賴于該文件,則也要重新編譯所有依賴該文件的源文件。 * 要創(chuàng)建的項目依賴于哪些文件。 這時,就可以利用如下的 makefile 來定義 的創(chuàng)建規(guī)則: : g++ c g 一個 makefile 文件中可定義多個目標,利用 make target 命令可指定要編譯的目標,如果不指定目標,則使用第一個目標。如果你要以相同的編譯選項同時編譯十幾個 C 源文件,而為每個目標的編譯指定冗長的編譯選項的話,將是非常乏味的。 (4) 運行 make GNU make 命令還有一些其他選項: C DIR 在讀取 makefile 之前改變到指定的目錄 DIR。 I DIR 當包含其他 makefile 文件時,可利用該選項指定搜索目錄。 w 在處理 makefile 之前和之后,顯示工作目錄。 gtk_init (amp。 gtk_widget_show (window)。 GTK 的層次結構 GIMP GTK+ GDK GLIB XLIB GTK 的事件與信號處理 GTK 是一個事件驅動的工具集,一個 GTK 應用通常在 gtk_main 上休眠直到一個事件發(fā)生,這時控制被傳遞給合適的函數。 void gtk_signal_handler_unblock( GtkObject, guint)。項目的目的是要建立一個小型的、快捷的 web瀏覽器,并便于移植到嵌入式系統中。 (2)界面模塊:窗口、菜單、工具條、滾動條等的初始化。 (6)文本文件的顯示模塊:對 Plain text 顯示的處理,也包含相應的布局算法。 IO 模塊 詞法分析模塊 文本文件顯示模塊 HTML 文件顯示模塊 PIXMAP 畫圖模塊 界面模塊 控制模塊 界面模塊 (1) , :用于界面的初始化和定制。 void a_Interface_openfile_dialog(BrowserWindow *bw)。 打開網址輸入欄輸入的網址。 定義了主菜單項,并進行了消息綁定 (3) 定義了重要的窗口結構如下: struct _BrowserWindow { /* 主窗口的 widgets */ GtkWidget *main_window。 GtkWidget *location。 /* 工具條按鈕 */ GtkWidget *back_menuitem。 /* 當前光標類型 */ GdkCursorType CursorType。 GtkWidget *quit_dialog_window。 控制模塊 (1), 主要的函數說明: void a_Commands_openfile_callback (GtkWidget *widget, gpointer client_data)。退出程序 void a_Commands_viewsource_callback (GtkWidget *widget, gpointer client_data)。 顯示幫助 (2), :是命令對應的與網頁操作有關的具體實施 主要的函數說明: void a_Nav_push(BrowserWindow *bw, const char*)。打開起始頁(內置頁面) 詞法分析的原理和算法在前面已有詳述。 全局詞法分析 int Bit_DestroyToken(BitTokenContext *global_cx)。 轉義字串的處理 int Token_ConsumTag(BitTokenContext *global_cx)。 保存分析結果 (2) , 用于存儲 元素的名稱和屬性。來新建一個 pixmap。 gint pixmap_repaint(GtkWidget *widget)。 文本文件的顯示模塊 , char *Plain_handle_tabs(const char *str)將 TAB 轉為空格。 while(line_sizeSCREEN_WIDTH20 amp。) {str[j]=Buf[i]。 } str[j]=39。)i++。 } 創(chuàng)建 PIXMAP pixmap_new(drawing_area,SCREEN_WIDTH,y)。 輸出到 PIXMAP 并顯示 HTML 文件的顯示模塊 這部份是整個瀏覽器 最重要的部份之一,綜合了語法分析與 HTML 的布局、輸出,其算法的好壞直接關系到網頁的顯示效果。 } //switch pTtokenList=pTtokenListn
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1