按照模块组织代码的包结构;各个模块之间的业务是独立的

风行网

----播放器 com.funshion.android.player

----下载模块 com.funshion.android.download

----联网     com.funshion.android.network

按照类型组织代码的包结构

-----界面 com.tsh.activity

-----自定义界面 com.tsh.ui

-----业务逻辑  com.tsh.engine 例如:联网

-----持久化 com.tsh.db 数据库

com.tsh.db.dao

-----后台服务 com.tsh.service

-----接收广播 com.tsh.receiver

-----公共的API接口 com.tsh.utils

反编译代码可以知道别人代码的包结构

[android] 工程的创建

使用友盟统计android各个系统的使用率,http://www.umindex.com/devices/android_os

最低版本是4.0

最多版本是4.4.4

清单文件里,最大SDK版本不填,填了高版本就无法安装了

欢迎界面,SplashActivity

[android] Splash欢迎界面的UI

显示logo,便于宣传

应用程序数据的初始化

检查版本信息

检查网络

检查版权

主界面去掉标题栏

清单文件里面,设置主题,android:theme=”@android:style/Theme.Black.NoTitleBar”

文字的阴影效果

设置阴影颜色 android:shadowColor=”#ff0000”

设置阴影x轴偏移android:shadowDx=”1”

设置阴影y轴便宜 android:shadowDy=”1”

设置阴影的半径   android:shadowRadius=”1”

开发环境看不到阴影效果

id的命名规范 控件_界面_功能 例如:tv_splash_version

添加个加载框

使用控件ProgressBar,布局水平居中,位于版本信息的下面,layout_below=”@id/xxx”

得到应有程序的版本信息

获取PackageManager对象,调用getPackagerManager()方法

调用PackageManager对象的getPackageInfo(),获取包信息获取到PackageInfo对象,参数:包名,附加信息

包名可以使用getPackageName()来得到

获取PackageInfo对象的versionName属性,就是版本名称

ctrl + shift + o 快速导包

[android] 手机卫士项目的更多相关文章

  1. Android 手机卫士--参照文档编写选择器

    本文来实现<Android 手机卫士--导航界面1的布局编写>中的图片选择器部分的代码. 本文地址:http://www.cnblogs.com/wuyudong/p/5944356.ht ...

  2. Android 手机卫士--签名文件说明&包名说明

    在<Android 手机卫士--打包生成apk维护到服务器>一文中,实现了新版本的apk到服务器,当打开客户端apk的时候,发现有新版本,提示更新.还实现了利用xutils工具实现了从服务 ...

  3. android手机卫士、3D指南针、动画精选、仿bilibli客户端、身份证银行卡识别等源码

    Android精选源码 android身份证.银行卡号扫描源码 android仿bilibili客户端 android一款3D 指南针 源码 android手机卫士app源码 android提醒应用, ...

  4. Android 手机卫士--设置界面&功能列表界面跳转逻辑处理

    在<Android 手机卫士--md5加密过程>中已经实现了加密类,这里接着实现手机防盗功能 本文地址:http://www.cnblogs.com/wuyudong/p/5941959. ...

  5. Android 手机卫士--确认密码对话框编写

    本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. ...

  6. Android 手机卫士--弹出对话框

    在<Android 手机卫士--解析json与消息机制发送不同类型消息>一文中,消息机制发送不同类型的信息还没有完全实现,在出现异常的时候,应该弹出吐司提示异常,代码如下: private ...

  7. Android 手机卫士--阶段小结1

    本文地址:http://www.cnblogs.com/wuyudong/p/5904528.html,转载请注明源地址. 本文对之前手机卫士开发进行一个小结. 1.SplashActivity 版本 ...

  8. Android 手机卫士--安装过程中点击回退按钮

    本文地址:http://www.cnblogs.com/wuyudong/p/5903707.html,转载请注明源地址. 在手机卫士之前的版本升级的对话框中: 有的用户暂时不想更新,没有点击“稍后再 ...

  9. Android 手机卫士--xutils说明与下载方法使用

    xUtils简介 xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词) ...

随机推荐

  1. python实现netcat部分功能源代码

    #!/opt/local/bin/python2.7 import sys import socket import getopt import threading import subprocess ...

  2. Redis Sentinel 模拟故障迁移

    什么是redis sentinel 参考文档:https://redis.io/topics/sentinel 简单的来说,就是Redis Sentinel 为redis 提供高可用性,主要体现在下面 ...

  3. Raft知识图谱

  4. 设计一个BCD码计数器。

    BCD码计数器的定义: 对于机器语言,机器与人不同,为了让人更好的了解机器语言的数据输出,选用4位二进制数据表示十进制里的每位数据,这便是BCD码. 以下便是BCD码与十进制对应的码表 0------ ...

  5. http响应头里没有或者有content-length的几种可能性

    对于http的请求返回结果要进行内容的长度校验主要有两种方式,二者互斥使用 1.客户端在http头(head)加Connection:keep-alive时,服务器的response是Transfer ...

  6. Instruments Time Profiler时,无法定位代码,如何破?

    都是地址符号,往深里也一直是地址符号,根本没法判断是哪些代码的执行时间 解决办法: 选下面的.

  7. C# 多线程 举例使用

    使用多线程的几种方式 (1)不需要传递参数,也不需要返回参数 ThreadStart是一个委托,这个委托的定义为void ThreadStart(),没有参数与返回值.   /// <summa ...

  8. WebView 错误码整理

    在使用WebView中,我们不可避免的会接触到WebView加载失败的异常处理的需求,这时候,需要我们监听失败的方法也就是onReceivedError方法: public class CustomW ...

  9. Android开发工程师文集-1 小时学会Widget小组件开发

    前言 大家好,给大家带来Android开发工程师文集-1 小时学会Widget小组件开发的概述,希望你们喜欢 学会用Widget (小组件) Widget小组件很方便,很快捷,可以个性化,自己定制,相 ...

  10. js中的柯里化

    概述 今天查询事件绑定资料的时候偶然遇到了柯里化这个词,很感兴趣,于是记录下来供以后开发时参考,相信对其他人也有用. 定义 柯里化是函数式编程里面的术语,它是把接受多个参数的函数变换成接受一个单一参数 ...