金色的骷髅 发表于 2015-1-18 11:21:35

Linux教程之Android文本时钟 C Part7仓酷云

写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。以上是我学习Linux的心得体会,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
在后面的文章中,我们一向努力于开辟一个能够在GooglePlay上公布的复杂App。由于上一篇文章中提出在App中发明一个Bug,以是在这篇文章中,我们将寻觅工具够探测并修复该Bug。
在这之前,起首得道个歉。在上一篇文章中我答应这篇文章将会先容一个新的特征,可是Bug的呈现打乱这个节拍。与其增添一个新特征却Bug不克不及利用App,还不如起首会合精神修复这个Bug。以是在此,对那些想进修新特征的人说一声抱愧了。
那些在他们设备上装了TextclockApp的人大概会遭到2013年2月23号更新版本的净化。当用户碰到软件溃散的时分,他们会有一个时机来向开辟者的提交碰到的Bug。当有效户提交了以后,开辟者会在把持台失掉一个毛病呈报日记。上面这张图就是我收到的一个毛病呈报。

<br>
这告知我们这个Bug是由NoSuchMethodError非常引发的。这个非常是由android.appwidget.AppWidgetManager.getAppWidgetOptions的办法抛出的。假如我们检察一下关于这个办法的官方文件,我们会发明它在官方API16中的先容:

<br>
如今,这个成绩十分分明。当这个App运转在一个装API16(JellyBean4.1)大概装有16之前版本的操纵体系设备上时,体系不撑持这个办法。以是会抛出NoSuchMethodError非常。与此同时,毛病呈报还告知我们这个办法在那边被挪用:TextClockService的updateTime办法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
privatevoidupdateTime(Calendardate){
Log.d(TAG,"Update:"+dateFormat.format(date.getTime()));
AppWidgetManagermanager=AppWidgetManager.getInstance(this);
ComponentNamename=newComponentName(this,TextClockAppWidget.class);
int[]appIds=manager.getAppWidgetIds(name);
String[]words=TimeToWords.timeToWords(date);
for(intid:appIds){
Bundleoptions=manager.getAppWidgetOptions(id);
intlayoutId=R.layout.appwidget;
if(options!=null){
inttype=options.getInt("appWidgetCategory",1);
if(type==2){
layoutId=R.layout.keyguard;
}
}
RemoteViewsv=newRemoteViews(getPackageName(),layoutId);
updateTime(words,v);
manager.updateAppWidget(id,v);
}
}

只管像后面会商过的,我们App具有必定的API向前兼容性,可是这个成绩是由我们对getAppWidgetOptions包涵性忽略酿成的。
办理这个成绩绝对简单,并且能够用我们之前会商过的手艺来确保API版本的向前兼容性。起首必要检测操纵体系的API版本,并依据我们检测的了局来断定实行哪段代码。
<p>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
privatevoidupdateTime(Calendardate)
{
<p>Log.d(TAG,

再见西城 发表于 2015-1-20 21:07:46

另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。

乐观 发表于 2015-1-24 09:43:52

熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:

莫相离 发表于 2015-1-31 22:53:35

我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。

山那边是海 发表于 2015-2-2 10:44:56

其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。

透明 发表于 2015-2-6 16:44:36

如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。

爱飞 发表于 2015-2-17 08:27:52

我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。

愤怒的大鸟 发表于 2015-2-24 02:40:48

对我们学习操作系统有很大的帮助,加深我们对OS的理解。?

简单生活 发表于 2015-3-4 10:53:49

最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。

小魔女 发表于 2015-3-7 09:27:40

linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!

小女巫 发表于 2015-3-8 10:58:06

下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。

老尸 发表于 2015-3-8 19:52:43

了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。

若天明 发表于 2015-3-10 07:26:35

这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?

深爱那片海 发表于 2015-3-17 05:10:03

可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。?

冷月葬花魂 发表于 2015-3-23 21:02:58

linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!
页: [1]
查看完整版本: Linux教程之Android文本时钟 C Part7仓酷云