一.理解 application的图标和 桌面activity的图标
在清单文件中对应的节点配置.
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
<activity
android:icon="@drawable/icon5"
android:label="@string/app_name"
android:name=".ui.SplashActivity" >
二、 Splash全屏显示
1、去掉标题栏
(1)也一般入门的时候经常使用的一种方法
//取消标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
//完成窗体的全屏显示 //取消掉状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN)
(2)在AndroidManifest.xml文件中定义
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
(3)
这种在一般的应用中不常用,就是在res/values目录下面新建一个style.xml的文件
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="notitle">
<item name="android:windowNoTitle">true</item>
</style>
</resources>
这样,我们就自定义了一个style,就相当于一个主题,然后在AndroidManifest.xml文件中定义
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/notitle">
总结:
第一种,有的时候我们会看到,会先出现标题栏,然后再消失,因为我们只是在activity的oncreate方法中定义的,第二种相对第一种比较好一些,不会出现这种情况,第三种我个人感觉最好,这样把功能分开,便于维护和扩展
2、全屏显示
第一种
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
第二种
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
第三种
application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/fullscreem"
三、 pull解析xml
/**
*
* @param urlid 服务器路径string对应的id
* @return 更新的信息
*/
public UpdataInfo getUpdataInfo(int urlid) throws Exception{
String path = context.getResources().getString(urlid);
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(2000);
conn.setRequestMethod("GET");
InputStream is = conn.getInputStream();
return UpdataInfoParser.getUpdataInfo(is);
}
/**
*
* @param is
* 解析的xml的inputstream
* @return updateinfo
*/
public static UpdataInfo getUpdataInfo(InputStream is) throws Exception {
XmlPullParser parser = Xml.newPullParser();
UpdataInfo info = new UpdataInfo();
parser.setInput(is, "utf-8");
int type = parser.getEventType();
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if("version".equals(parser.getName())){
String version = parser.nextText();
info.setVersion(version);
}else if("description".equals(parser.getName())){
String description = parser.nextText();
info.setDescription(description);
}else if("apkurl".equals(parser.getName())){
String apkurl = parser.nextText();
info.setApkurl(apkurl);
}
break;
}
type = parser.next();
}
return info;
}
URL代表统一资源定位器,它是一个指向互联网“资源”的指针。
通常情况下,URL可以由协议名、主机、端口和资源组成。如下格式:
protocal://host:port/resourceName
例如:http://www.baidu.com/index.jsp
JDK中提供了一个URL类,该类代表一个统一资源标识符,URL包含一个可以打开到该资源的输入流。
URL的openConnection方法返回一个URLConnection对象,通过该对象可以发送URL请求。
如果只是GET方式请求、使用connect方法建立远程资源之间的实际连接即可;如果需要发送POST请求,需要获取URLConnection实例对应的输出流来发送请求参数。
四、 URL httpUrlConnection
/**
*
* @param path 服务器文件路径
* @param filepath 本地文件路径
* @return 本地文件对象
* @throws Exception
*/
public static File getFile(String path,String filepath,ProgressDialog pd) throws Exception{
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
if(conn.getResponseCode() == 200){
int total = conn.getContentLength();
pd.setMax(total);
InputStream is = conn.getInputStream();
File file = new File(filepath);
FileOutputStream fos = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len = 0;
int process = 0;
while((len = is.read(buffer))!=-1){
fos.write(buffer, 0, len);
process +=len;
pd.setProgress(process);
}
fos.flush();
fos.close();
is.close();
return file;
}
return null;
}
HttpURLConnection是URLConnection的子类、在URLConnection类的基础上做了进一步的改进、增加了一些用于操作HTTP资源的便捷方法。
五、 获取当前客户端版本号
/**
* 获取当前应用程序的版本号
*
* @return
*/
private String getVersion() {
try {
PackageManager manager = getPackageManager();
PackageInfo info = manager.getPackageInfo(getPackageName(), 0);
return info.versionName;
} catch (Exception e) {
e.printStackTrace();
return "版本号未知";
}
}
PackageManager
getPackageManager(); //得到系统的包管理服务
-
-
-
-
-
-
-
-
-
-
privateHashMap<String,String>installPackagesInfo(){
-
-
PackageManagerpackageManager=this.getPackageManager();
-
-
-
-
List<ApplicationInfo>applicationInfos=packageManager.getInstalledApplications(0);
-
HashMap<String,String>resultMap=newHashMap<String,String>();
-
Iterator<ApplicationInfo>iterator=applicationInfos.iterator();
-
while(iterator.hasNext()){
-
ApplicationInfoapplicationInfo=iterator.next();
-
StringpackageName=applicationInfo.packageName;
-
StringpackageLabel=packageManager.getApplicationLabel(applicationInfo).toString();
-
resultMap.put(packageLabel,packageName);
-
}
-
-
returnresultMap;
-
-
}
分享到:
相关推荐
Android手机卫士系列的源代码,详细请看手机卫士系列:http://blog.csdn.net/dawanganban/article/category/1562079
Android项目实战——手机安全卫士开发案例解析的word 电子书
Android项目实战——手机安全卫士开发案例解析 随书代码文件
教程名称:手机安全卫士项目开发视频课程目录:【】手机安全卫士_day1【】手机安全卫士_day2【】手机安全卫士_day3【】手机安全卫士_day4【】手机安全卫士_day5【】手机安全卫士_day6【】手机安全卫士_day7【】手机...
Android手机卫士系列的源代码,详细请看手机卫士系列:http://blog.csdn.net/dawanganban/article/category/1562079
移动互联应用开发系列·Android项目实战:手机安全卫士开发案例解析 本源码通过对一款手机安全卫士开发案例的详细解析,讲解了一个完整的Android实际项目的开发过程。该项目涵盖了市场上主流手机卫士的主要功能,...
Android项目实战——手机安全卫士开发案例解析 用于在Eclipse开发环境中关联和查看Android 框架中的源代码事件
《Android项目实战:手机安全卫士开发案例解析》通过对一款手机安全卫士开发案例的详细解析,讲解了一个完整的Android实际项目的开发过程。该项目涵盖了市场上主流手机卫士的主要功能,同时,该项目也是对Android...
Android手机卫士系列的源代码,详细请看手机卫士系列:http://blog.csdn.net/dawanganban/article/category/1562079
安卓Android源码——【手机安全卫士】连接服务器获取更新信息.zip
基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计...
安卓Android源码——【手机安全卫士02】连接服务器获取更新信息.rar
手机安全卫士开发案例解析(源码),手机安全卫士开发案例解析(源码)
Android源码——安全卫士源码.7z
android手机安全卫士。本案列涵盖了当前主流的android开发技术,并有手机防盗、通讯卫士、软件管家、手机杀毒、缓存清除、流量统计、高级工具、设置中心9大功能模块。
手机卫士 ## 项目介绍 ## > 演示功能有: - 启动页面 - 主页 - 手机防盗(注意:演示时模拟器要提前设置有联系人); - 通讯卫士:黑名单的管理:电话拦截、短信拦截的演示; - 软件管理:列出系统的所有软件,...
安卓Android源码——安卓手机安全卫士更新版.zip
不知不觉已经写到了第八篇了,手机卫士作为一个复习基础的项目,我基本也快做完了,如果大家继续看完的话,基本做东西有思路了。