前段时间(大约在2010-6-20至2010-9-20之间)开发了一个android的“唐诗宋词”程序。该程序收录了2600多首唐诗宋词,功能主要有三个方面,一是根据唐诗或者宋词,显示所有作者,二是根据作者显示所有该作者的所有作品,然后用户点击某个作品则可以浏览该诗词,三是根据用户输入的
关键字搜索显示对应的诗词。具体界面可以点击这里查看http://mm.10086.cn/1007/300000071631.html?p=24436848。
然后把在开发这个程序过程中,所得到的一些知识(也许存在个人
误解的),做个总结和备忘吧。也算是一个项目完结的纪念。知识点如下:
1.android程序开发完后,在eclipse中签名步骤如下,
1)在Package Explorer视图中选择该项目,右键,选择Android Tools,再选择Export Signed Application Package,再点击Next
2)如果已经有keystore,则输入密码,一直Next到结束,如果没有keystore,则按照提示重新创建一个keystore。
2.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
android:layout_width和android:layout_height设为"wrap_content",LinearLayout的android:gravity="center"
才把TextView设为想要的居中效果。
3.TextView中加入"\n"会自动换行
4.SQLiteOpenHelper中的
@Override
public void onCreate(SQLiteDatabase db)
{
// TODO Auto-generated method stub
db.execSQL(DataBaseUtil.DB_CREATE_KINDS);
}
方法是数据库(不是
数据表)第一次创建时,执行的方法,如果你已经创建了数据库,下次通过helper.getWritableDatabase();时,
也不会调用此方法。所以如果你在其中创建数据表,必须把数据库也删去,数据表才会重新创建,否则还是之前创建的数据表。
5.sqlite3 的 .import的用法
.import用处是把文件导入表,步骤如下
1)建立一个表,比如kinds _id kind
2)建立一个文件kinds.txt 里面内容是
1@唐诗
2@宋词
3)打开虚拟机,用
adb push 把kinds.txt复制到
databases文件夹里
adb push G:\kinds.txt data/data/com.poem.activity/databases
4)用adb shell连接虚拟机,并进入databases文件夹,然后用sqlite3 poems.db连接该虚拟机的数据库
5) sqlite> .separator "@"
sqlite> .import kinds.txt kinds
6.Installation error: INSTALL_FAILED_INSUFFICIENT_ST
ORAGE
安装
内存不足
http://www.eoeandroid.com/
thread-2794-1-1.html
可以在起emulator的时候加个参数
例:-partition-size 120
表示內存大小为120M(这个知识点没测试过)
7.Typeface字体问题
1)08-29 03:00:06.082: DEBUG/asset(1350): Data exceeds UNCOMPRESS_DATA_MAX (4135804 vs 1048576)
字体文件太大,没有被加载进来,所以找不到
2)字体加入assets/fonts文件夹后,一定要在fonts文件夹和assets文件夹上刷新,否则加入的字体可能不起作用!
8.如何将Sqlite数据库与apk一同发布?
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
9.LinearLayout动态设置宽和高,使用LinearLayout.LayoutParams,而不是ViewGroup.LayoutParams,否则报
异常
10.如何
限制EditText的宽度或字符数?
http://www.cnb
logs.com/over140/archive/2010/09/02/1815439.html
总结完毕。