2019独角兽企业重金招聘Python工程师标准>>>
以前写的,转过来
如何用NetBeans在Kindle3下开发小程序(Kindlet)
今天研究了一下这方面的帖子,基本上明白了一些原理,主要参考这两个贴,首先感谢这些程序员的无私奉献:
【Kindlet 开发过程简介】
http://www.hi-pda.com/forum/viewthread.php?tid=702643
【Guide: How to write Kindlets 】
http://www.mobileread.com/forums/showthread.php?t=102386
具体操作时才发现还有不少细节需要注意,说明一下过程,希望能为感兴趣的朋友提供一点帮助,同时也作为今天学习的一个总结,免得过两天就忘了,嘿嘿。
前提条件是要越狱,这个就不多说了,上面两个帖子都有描述。
首先就是安装一套NetBeans的开发环境,导入Java ME,导入CDC,细节可以参考第一个帖子,然后就可以建立项目,如下截图所示:
step1
step2
step3
step4
经过以上4步,一个基本的java程序就生成了,如下所示:
不过为了在Kindle上运行,需要修改里面的代码如下:
package testapp;
import com.amazon.kindle.kindlet.AbstractKindlet;
import com.amazon.kindle.kindlet.KindletContext;
import com.amazon.kindle.kindlet.ui.KTextArea;
public class Main extends AbstractKindlet {
private KindletContext ctx;
public void create(KindletContext context) {
this.ctx = context;
}
public void start() {
try {
ctx.getRootContainer().add(new KTextArea("Hello World swww @_@ !"));
} catch (Throwable t) {
t.printStackTrace();
}
}
}
修改后如下图所示:
这时先检查一下,看看这个项目有没有包含kindlet-1.1.jar,没有的话就手动添加一下,如下图所示:
这时需要修改项目的 Manifest.mf 文件,这个文件在项目文件夹下,我的项目在这个目录:
使用一个文本编辑器修改 Manifest.mf 文件,我用VIM修改,原文件如下:
需要加入以下5行内容:
Implementation-Title: testapp
Implementation-Version: 0.01
Implementation-Vendor: FreeBlues
Description: Test for Kindle
Main-Class: testapp.Main
加入后如下:
作完上述修改并保存后,就可以进行编译了,按照下图操作:
编译后在原来的项目文件夹下会多出两个目录,我们只关注 “dist” 目录,因为这里放着编译好的testapp.jar文件,接下来可以把这个文件改名为 testapp.azw2 将来就是把这个文件做一定的处理后上传到我们的Kindle3里,如下:
这时工作差不多做了一半了,可以先松口气,歇一下。
因为kindle的每个应用(小程序)都必须有签名,所以比较麻烦的地方就在这里,因为我们都不是亚马逊授权的开发人员,所以需要利用越狱的手段自己来更新keystore,我参考的两个帖子中使用了不同的办法来应对签名,第一个帖子是借助adq的devkeys的签名,第二个帖子直接利用java环境自带的工具keytool来生成keystore和签名,我试了第一个帖子的办法,不知道哪里没设置对,总是没办法成功,后来用第二个帖子的办法才搞定,所以这里介绍的是第二个帖子的办法,这分两步,第一步是利用java自带的程序 keytool.exe 生成自己的keystore,第二步是利用java自带的程序 jarsigner.exe 跟刚才生成的keystoe文件(这里的keystore文件名是developer.keystore)为我们的前面编译好的testapp.azw2文件进行签名,最后再把我们生成的developer.keystore文件上传到K3的 /var/local/java/keystore/developer.keystore ,这里说明一下,更换这个developer.keystore文件会影响其他通过同样方法开发出来的小程序,比如我原来安装的象棋,可以先把这个目录下的文件( /var/local/java/keystore/)进行备份,以便将来恢复,还要把签名后的 testapp.azw2 上传到K3的 \mnt\us\documents\ 目录下,最后重启K3,就能运行这个小程序了,不过我的不清楚什么原因,只能看到标题,没看到那个hello world,下面详细描述一下如果生成developer.keystore和如何对testapp.azw2进行签名。
keytool.exe 和 jarsigner.exe 都在java的安装目录下,我的环境在这个目录:D:\Program Files\Java\jdk1.6.0_25\bin,如下:
【1】利用keytool生成developer.kestore,命令如下:
D:\"Program Files"\Java\jdk1.6.0_25\bin\keytool -genkeypair -keystore developer.keystore -storepass password -keypass password -alias dkTest -dname "CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown" -validity 5300
D:\"Program Files"\Java\jdk1.6.0_25\bin\keytool -genkeypair -keystore developer.keystore -storepass password -keypass password -alias diTest -dname "CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown" -validity 5300
D:\"Program Files"\Java\jdk1.6.0_25\bin\keytool -genkeypair -keystore developer.keystore -storepass password -keypass password -alias dnTest -dname "CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown" -validity 5300
我做成了批处理命令1_kestore.bat 1_keystore.rar (261 Bytes, 下载次数: 4)
(这里的developer.keystore就是我们自己生成的keystore,要上传到K3的 ( /var/local/java/keystore/) 目录中覆盖原来的文件)
【2】利用刚才生成的developer.keystore给我们的testapp.azw2进行签名,命令行如下:
D:\"Program Files"\Java\jdk1.6.0_25\bin\jarsigner -keystore developer.keystore -storepass password testapp.azw2 dkTest
D:\"Program Files"\Java\jdk1.6.0_25\bin\jarsigner -keystore developer.keystore -storepass password testapp.azw2 diTest
D:\"Program Files"\Java\jdk1.6.0_25\bin\jarsigner -keystore developer.keystore -storepass password testapp.azw2 dnTest
我也做成了批处理 2_signapp.bat 2_signapp.rar (220 Bytes, 下载次数: 3)
好了至此就大功告成了,分别把developer.keystore 和 testapp.azw2 上传到 K3的对应目录,然后重启,就可以运行了,附上我编译出来的这两个文件: dist.rar (5.53 KB, 下载次数: 6)
今天的学习总结完成&#xff0c;不清楚为什么我的系统上就是无法显示 hello world&#xff0c; >_< 明天继续学习......
FAQ:另外今天遇到最多的问题就是运行程序时显示“The permissions to open the requested title have an invalid date. Please contact customer service”&#xff0c;这个只要同步一下系统时间就可以了&#xff0c;就是K3的那个"menu/Sync & Check for Items”&#xff0c;就可以解决。
-
2_sign.rar
2011-8-7 21:55:31 上传
下载次数: 3
219 Bytes, 下载次数: 3
-
2_sign.rar
2011-8-7 21:58:29 上传
下载次数: 2
217 Bytes, 下载次数: 2
补充&#xff1a;
刚发现可以直接在NetBeans里面修改 Manifest.mf 文件&#xff0c;比较方便&#xff0c;以前没怎么用过这个IDE&#xff0c;如图&#xff1a;