文档章节

开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start

姬鑫
 姬鑫
发布于 2015/05/18 16:17
字数 631
阅读 2504
收藏 30

1启动界面的布局文件为app_start.xml ,对应的类文件为net.oschina.app 包下的AppStart.java。

2对于布局文件而言,因为只显示一张主题图片,因此布局简单直接设置背景图片。因为是启动界面,启动时会有短暂的卡顿,对于用户而言体验不好,因此在配置文件中自定义了style ,黑色 无标题 全屏(为什么选黑色的呢?是不是因为背景图图片是白的,衬托的更亮白呢?^_^)。设置了背景图片和无标题

<style name="Theme.AppStartLoad" parent="android:Theme.Black.NoTitleBar.Fullscreen">

        <item name="android:windowBackground">@drawable/welcome</item>

        <item name="android:windowNoTitle">true</item>

    </style>

疑惑:

2.1既然已经设置了 parent="android:Theme.Black.NoTitleBar.Fullscreen",为什么还要用<item name="android:windowNoTitle">true</item>,另外在样式中设置了背景图片,为什么在布局文件中还要在设置下背景图片呢?难道重复的工作确实会有效的降低启动界面卡顿的问题吗?

2.2布局文件中为什么要设置android:gravity="bottom"这个属性呢,让图片居于控件底部?这个意图是什么???

3AppStart.java文件

3.1利用了动画中的View的渐变动画效果,从半透明到完全不透明,动画持续时间为800ms,动画结束后,完成日志的上传和界面的跳转。

3.2日志上传利用服务在后台完成的,无论上传成功还是失败,最后要记得关掉服务。成功后,将旧的日志文件删除,因为我们要进行新的一轮操作,至于在什么地方会保存日志,后面随着逐步分分析应该会找到它的。此处用到了第三方包https://github.com/loopj/android-async-http. 

3.3在onResume函数中做了以下处理:主要是考虑APP版本升级后,当前的版本大于之前的版本,那么就将之前缓存的图片给清理掉,升级后缓存的图片很有可能没有用处了:此处引用了第三方包 http://kjframe.github.io/  。此包确实强大,可惜的是API文档中没有对启动界面引用的preference的API的详细解释,因此本条分析完全是自己揣摩的。至于图片缓存是App中哪一模块用到的,后面随着逐步分分析应该会找到它的。


© 著作权归作者所有

姬鑫
粉丝 85
博文 54
码字总数 16632
作品 0
宁波
程序员
私信 提问
加载中

评论(12)

姬鑫
姬鑫

引用来自“os1028”的评论

引用来自“九洲北研”的评论

能不能加好友一起研究开源中国客户端代码
你研究的怎么样的了?加好友么

324386394加群
o
os1028

引用来自“九洲北研”的评论

能不能加好友一起研究开源中国客户端代码
你研究的怎么样的了?加好友么
out有点man
out有点man
非常感谢
溱
非常感谢
姬鑫
姬鑫

引用来自“alivebao”的评论

为什么是在动画结束之后才执行上传service?感觉动画开始的时候执行service,动画结束后执行跳转,这样效果会不会更好一些?
原则上,前后无所谓,毕竟服务是在后台执行的。放在前面只是提前了800ms做这件事罢了
alivebao
alivebao
为什么是在动画结束之后才执行上传service?感觉动画开始的时候执行service,动画结束后执行跳转,这样效果会不会更好一些?
J
JameBoy
最近也在研究,可以加个好友一起研究
Litter小强
Litter小强
分析的不错,最近也在研究这个App的思路
姬鑫
姬鑫

引用来自“九洲北研”的评论

能不能加好友一起研究开源中国客户端代码
274921407 欢迎学习讨论
姬鑫
姬鑫

引用来自“andrewhunter”的评论

怎么没有代码下载地址
http://git.oschina.net/oschina/android-app/tree/v2.2.1/
请问关于开源中国android 客户端代码的下载

请问 ,我在这个页面 http://git.oschina.net/oschina/android-app 点击 v2.2.1 想下载可用 eclipse的版本 如何1所示 然后 在 http://git.oschina.net/oschina/android-app/tree/v2.2.1/ 这个......

gdutqiang
2016/08/23
283
2
开源中国安卓客户端更新,支持语音动弹

这是 OSCHINA 官方开发的 Android 客户端软件,采用原生 API 开发,非 HTML 模式。 开源中国安卓客户端 v1.7.6.4 版更新资讯: OSChina.NET for Android v1.7.6.4 更新日志: 1、语音动弹发布...

火蚁
2014/02/11
4.3K
54
OSCHINA Android 客户端 1.7.0 发布

OSChina.NET for Android v1.7.0 版本发布了,该版本主要更新内容: v1.7.0 更新日志: 1.默认加载数据均为缓存,新数据需用户手动刷新; 2.新增问答区帖子带标签的功能; 3.新增动弹发表评论...

迷途d书童
2012/09/04
1K
24
开源中国 iPhone 客户端 3.x 源码正式开放

前些天我们开放了安卓最新版的源码,已经收到了几个用户将项目 Gradle 化的 Pull Requests,在这里感谢一下@zlsun、@昵称不好取 两位热心OSCer的贡献,现在安卓版本的公开库已经支持了 Andr...

火蚁
2015/05/26
9.2K
61
开源中国 Android 客户端 v2.8.9 代码开源

传承我大OSC的光荣传统,继昨天发布开源中国 Android 客户端 v2.8.9 版本之后,今天我们如约双手奉上该版本源码,敬请各位OSCer们笑纳! 新增:编写并发布博客功能 新增:资讯、博客详情界面...

巴拉迪维
2017/09/30
981
6

没有更多内容

加载失败,请刷新页面

加载更多

好程序员web前端分享逻辑运算

  一门计算机语言,编程的核心在于逻辑思想,当我们在编写程序的时候,逻辑是否通顺,是能否正确写出程序的关键,可以说如果你掌握了逻辑,那么你就踏入了计算机编程的大门。 &&与 || 或 ...

好程序员IT
25分钟前
1
0
我的Linux系统开始学习的过程

我的Linux系统开始学习的过程 Linux系统,不知大家是否了解。接触计算机不多或对计算机不感冒的人可能对其比较陌生,曾经的我也是。上大学前的我的确对Linux一无所知,那时候接触面窄,都没有...

linuxCool
25分钟前
1
0
让自己的网站可以被搜索

第一步:先注册一个属于自己的域名,这个域名是独一无二的。推荐到主机屋注册一个,其实在哪里注册都是一样的,但是主机屋提供免费的地址解析服务(只对在主机屋注册的域名免费)。 主机屋官...

WinkJie
28分钟前
3
0
全站加速(DCDN)- IP应用加速产品解读

5月22日下午15点,阿里云全站加速(DCDN)-IP应用加速如期发布。IP应用加速是阿里云自主研发的一款更高效、更安全、更便捷的动态加速产品,结合阿里云CDN本身的资源优势,利用就近接入、智能...

阿里云官方博客
31分钟前
1
0
k8s常用命令

1.创建deployment资源kubectl apply -f nginx.yml2.删除deployment资源kubectl delete -f nginx.yml3.查看deployment资源基本信息deployment资源(运行的服务资源)kubectl get...

平头哥-Enjoystudy
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部