新聞中心
某個角度上說,Kindle很類似Android,同樣的linux內(nèi)核,同樣的Java用戶層。不過Kindle更注重簡單、節(jié)能、穩(wěn)定。Amazon一向認(rèn)為,功能過多會分散人們閱讀時候的注意力。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)與策劃設(shè)計,大足網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大足等地區(qū)。大足做網(wǎng)站價格咨詢:18980820575
Kindle底層的Linux比Android保持了更多的Linux兼容性,可以使用GTK或者QT編寫程序。QT適合編寫大的、獨占界面性的應(yīng)用,比如多看就曾經(jīng)發(fā)布過一個Kindle之上的版本,現(xiàn)在還有很多人用,可惜因為公司戰(zhàn)略調(diào)整的原因,這個產(chǎn)品被廢棄了。GTK及最基本的Linux應(yīng)用更適合開發(fā)一些補丁性的小程序,來補充Kindle的基本功能。在ubuntu上搭建Kindle的gtk開發(fā)環(huán)境非常簡單,只需要一條命令:
sudo apt-get install pkg-config gcc-arm-linux-gnueabi libgtk2.0-dev
接著我們來寫一個hello world來驗證功能:(文件名:testGtk.c)
#include
static void hello( GtkWidget *widget,gpointer data ) {
gtk_main_quit ();
}
static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) {
g_print ("delete event occurred\n");
return FALSE; // we do want to quit
}
static void destroy( GtkWidget *widget, gpointer data ) {
gtk_main_quit ();
}
int main( int argc, char *argv[] ) {
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "delete-event", G_CALLBACK (delete_event), NULL);
g_signal_connect (window, "destroy", G_CALLBACK (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello World");
g_signal_connect (button, "clicked", G_CALLBACK (hello), NULL);
gtk_container_add (GTK_CONTAINER (window), button);
gtk_window_set_title ( GTK_WINDOW(window) , "L:A_N:application_ID:test");
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
接著先在桌面Linux電腦上編譯來試一下:
gcc -o testGtk testGtk.c `pkg-config gtk+-2.0 --cflags --libs`
在電腦上執(zhí)行./testGtk,可以看到結(jié)果正確。
交叉編譯kindle的版本則相對比較復(fù)雜,我們還是直接寫一個Makefile吧,避免手工輸入太長容易出錯,同時Makefile中也增加了macos的編譯部分。gtk雖然看上去很陳舊、落伍,但是跨平臺用起來,其實比很多主流應(yīng)用還要順暢。
GCC=gcc
ARMGCC=arm-linux-gnueabi-gcc
ARMLIBS=`pkg-config gtk+-2.0 --cflags` -L/usr/arm-linux-gnueabi/lib/ -L/home/andrew/dev/kindleLib/ -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrender -lXinerama -lXext -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXdamage -lXfixes -latk-1.0 -lcairo -lpixman-1 -lpng12 -lxcb-shm -lxcb-render -lX11 -lxcb -lXau -lXdmcp -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lfontconfig -lfreetype -lz -lexpat -lgobject-2.0 -lffi -lgmodule-2.0 -lgthread-2.0 -lglib-2.0
keys = testKindleGtk
all:$(keys) $(objs)
testKindleGtk:testGtk.c
$(ARMGCC) -o testKindleGtk testGtk.c $(ARMLIBS)
x86:
gcc -o testGtk testGtk.c `pkg-config gtk+-2.0 --cflags --libs`
osx:
export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig && gcc -o testGtk testGtk.c `pkg-config gtk+-2.0 --cflags --libs`
clean:
rm $(keys) testGtk
不好意思,原諒我把最重要的放到最后說,在kindle上測試這個程序,需要越獄kindle,在KPW2之間的版本,在網(wǎng)上搜索,有軟件的方法越獄。之后的版本就復(fù)雜了,可能還需要拆機引串口線的方式。
不過總感覺kindle的越獄還是很有意義的,主要是原生系統(tǒng)對于純文本的排版水平實在太差,我就是越獄后裝了再也見不到更新的多看系統(tǒng)。
項目的源碼可以到主機寶貝資源站下載:
具體下載目錄在 /2018年資料/3月/24日/在Ubuntu上搭建Kindle GTK開發(fā)環(huán)境/
名稱欄目:在Ubuntu上搭建KindleGTK開發(fā)環(huán)境
本文鏈接:http://m.5511xx.com/article/dpjigge.html


咨詢
建站咨詢
