android程序报告

2024-05-26

android程序报告(共11篇)

篇1:android程序报告

本科生毕业实习报告

标 题:关于在“******公司”从事Andorid开发程序员实习的报告

实习单 位:********有限公司 实习时 间: 2015.3.2 实习岗 位: Android开发程序员 学 生 姓 名: 学 号: 院 系: 专 业:

年月日

题目:关于在“*****有限公司”从事Andorid开发程序员实习的报告

一、实习单位及岗位简介

(一)实习单位的简介*******有限公司是一家刚刚成立的私营公司,在职员工大部分为80后软件精英,主营软件开发(Java方向),电子产品批发零售,信息系统集成服务,公司行业主要是互联网、电子商务、计算机软件、计算机硬件等。公司地址在*********,现共有员工大概50人。主要有Web开发部、Jsp开发部、Android开发部等。经过不断地学习和实战,每个部门都有其实力强硬的带头人,整体上是一个积极向上,团结奋进的创业型企业。

企业文化:人才是企业最大的财富,优秀的产品,良好的服务是企业价值的体现;爱祖国、爱人民、爱事业和爱生活是企业凝聚力的源泉;尊重知识、集体奋斗、艰苦创业是企业发展的要求;责任意识、创新精神、敬业态度和精诚合作是企业文化的精髓;实事求是是企业的行为准则。

(二)实习岗位的简介

我所在的实习岗位是一个所属Android部的程序开发岗位,主要工作是配合组长,做一些力所能及的东西。同时组长会针对性的给我一些网站或者资料,让我学习,这些资料主要是和他现在做的项目相关的技术实现。我自己看一边做个基本的了解,同时对这些技术和框架有个大体的认识。然后他会再结合他的项目,有针对性的给我讲解这些技术的应用,是怎样在他的项目里实现的。然后会给我分配一个小任务,让我拿来练手的同时,又一遍温习和巩固先前学到的技术。

我的实习工作从一个APP的界面开始,慢慢熟悉这个APP的框架结构,然后把组长写好的核心算法放进框架中,实现其功能。总的来说,我在这个团队中主要担任辅助的工作,将其他人写好的模块放进项目框架中,从中不断学习Amdroid开发的技巧和别人的代码风格。

二、实习内容及过程

时间一晃而过,转眼间到公司已经两个多月了。这是我人生中弥足珍贵的一段经历。在这段时间里各级领导在工作上给予了我极大的帮助,在生活上给予了我极大的关心,让我充分感受到了领导们“海纳百川”的胸襟,感受到了大发人“不经历风雨,怎能见彩虹”的豪气。在对公司各级领导肃然起敬的同时,也为我有机会成为公司的一份子而自豪。在段时间里,在领导和同事们的悉心关怀和指导下,通过自身的努力,各方面均取得了一定的进步。

来这个公司虽然才短短两个月,收获挺多的,由对项目的一窍不通到现在对它的流程以及相关的技术都有所了解,也让我深深体会到了沟通自学的重要性。所以我们每一步都有要集中注意力,争取把每一步都做好。

刚开始我们做这个程序的时候,大家都比较盲目,只是负责人说了一下,我们就开始进行编了在这个过程之种我们吃了许多的苦,有时候凌晨三四点我们还在加班,可最后做出的作品是输入速度太慢,我们的主管于是带领我们到他们一

楼的微机室是去看他们以前编写的程序;不看不知道,一看吓了我们一大跳,以前我们那有这样想过呀,只要能做出来,没有错误就行了,可是速度呢?人家一个小时输入的东西,我们的程序可能需要一个早晨,看完之后主管对我们说:这样的程序送你,你会用吗?

那个打击呀,辛苦了几天几夜,最终却是这样的一个结果。可打击归打击,我们又得重新来做!相对而言,我们这次要比以前有经验了,一次比一次成熟起来了,在经历了又一个一天一夜的奋战,我们终于又有新希望了,可是心情刚好,那么又传来了消息,说他们的数据又发生的变动,有了新的调整,这在以前我们也想过这个问题,也想好好的做,可是我们又一想工厂不是要实用吗?这方面变化的可能性很小,于是为了方期间我将有变量写进了代码之中,这一变,无疑宣布我要失败了。和我在一起的几个同事也是这种情况,所以我们这些没有开发过软件的充当软件高手的新手们又得重新面对新的问题了.失败,又一次被打败!

几天之后我们又做出了程序,很辛苦,此时我们才明白程序员的不易了,编程是一个见效特别慢的东西,而且对方又看不见,如果一不小心你的程序可能会无法打开,或者是说出现别的什么,那就完了,你几天的成果就什么也看不见了,不像别的东西,做了,可以让大家看得见。我的程序在最后的调试时出现了一点小故障,一时间我一点思路也没有了,所以我失败了。

当然比表面来看我是失败了,败的很惨;可是从某种意义上说我又达到了我的目的,因为只有失败的人永远都不会停下思考的脚步,激起了我沉睡的思想,使我一颗盲目的心有了方向,我不能这样输了,从那儿倒下去的,我会从那儿站起来的,顶着那么大的压力,我的体会绝不低于他们中的任何一个人,说实话,在一段实习期间,我真的有点撑不住了,我也想到过放弃,可我不能就这样轻言放弃,我失败了,我输掉的是技能,不是人格;可我退缩了,就会失掉了人格,我将失去了所有,失掉技能我还会追回来的!

人生的每一步旅途中,总有着一道无形的栏杆,每一次跨越需要很多的勇气,也不是每一次跨越都能够成功,失败是不可避免的,主要的是要敢于承认失败,面对失败,努力去做,解决它,有这个决心,我想人生会成功的,至少可以无憾!这次我想我会很用心的去学习,尽量把他做到完美,至少我自己要九十分的满意我才会交出我的作品。

虽然加入公司这个大家庭已经有不短的时间了,对开发技术掌握的还不是很深,对发现问题的处理还不是很全面,对分工的工作还没有形成系统的计划。随着对公司和工作的进一步熟悉,我也希望能够在今后的工作中更加迅速的提升自己的业务能力以及技术能力,我觉得多做一些工作更能体现自己的人生价值。“业精于勤而荒于嬉”,在以后的工作中我要不断学习业务知识,通过多看、多问、多学、多练来不断的提高自己的各项业务技能。学无止境,时代的发展瞬息万变,各种学科知识日新月异。我将坚持不懈地努力学习各种知识,并用于指导实践。在今后工作中,要努力做好开发人员的本职工作,把自己的工作创造性做好做扎实,为项目的开发以及公司的发展贡献自己的力量。

通过和大家一段时间的相处,我深切地感受到,我们公司部是一个团结、上进、充满活力的集体。每天大家都是笑脸相迎,即使面临很大的工作压力,办公室里仍然会听到笑声;面对客户,大家总是热情真诚;面对技术上的困难,大家总是互相帮助,直至解决难题。整个部门和睦相处,就像一个温馨的大家庭。而部门领导就是这个家庭中的家长,给每个人很大的空间自由发挥。从他们身上,我真正体会到了敬人、敬业、高效、高水平服务的真实意义,体会到了服务部服务、奉献的意义,体会到了创造完美、服务社会的服务理念,知道了什么是创新就是生活。特别令我感动的是,每当我遇到困难向大家求助时,谁都会无私的告诉我。

我很庆幸自己能在这样有限的时间里,在这么和谐的气氛中工作、学习,和同事们一起分享快乐,分担工作。所以我努力向同事学习,不懂就问,认真完成领导和同事交给我的每一项工作。

实习,是开端也是结束。展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸甸的责任。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值

人生就是经历着风风雨雨,在风雨中倒下去,然后站起来的时候,那时的彩虹最美丽!

三、实习收获与体会

学习Android有一段时间了,了解到在智能手机软件不断发展的今天,很多传统PC机上的应用正在向智能手机客户端转移。但是在学习的过程中有出错的操作以及随之而来的全英文报错内容,让人感觉到非常的郁闷和烦躁!可是随着时间的推移,随着掌握的知识的增加,不知道从哪天开始忽然发现从最初的面对Android时的烦躁到现在居然对Android有了一探究竟的兴趣!总结了一下自己学习Android以来的一些心得,和大家分享一下!

1、首先在学习Android的时候要有一份永不放弃的决心,从某些方面来说,学习Android是一件非常枯燥的事情,尤其是刚开始的时候,面对全英文的黑白操作界面,所以,持之以恒是最重要的!

2、自己创造一个Android学习的环境!由于Android有大量的操作需要记忆,很显然,靠死记硬背是不科学的!最好的方法就是实践,多操作,联系的多了,自然而然的就记住了,而且还是记得最牢靠的!

3、细微处着眼。Android是很严肃的,也许一个命令大小写的错误就可能导致出错,甚至多一个少一个空格,或者小符号,它也会给你个“小脸色”看看,这就要求我们在操作Android虚拟机的时候非常的细心,有足够的耐心!

4、留意Android代码的报错。出现操作错误的时候,它会报错,告诉你哪里出问题了,可能有的同学英语能力比较差,碰到报错的时候看不懂,也就不去管它,这就导致了排错非常的困难。所以,碰到报错的时候即使我们看不懂,我们也努力的去读,然后根据一字半字的去“猜”,然后等找到错误了它就会潜意识的让我们明白那句全英文的报错的大体意思,时间长了,碰到的次数多了,就算我们英语能力差,我们也可以“读懂”它报错的意思!

写在最后我想告诉大家的就是学习Android要多实践,即使刚开始失败了也要继续,再失败再继续,再失败再------学习Android失败是很正常的事情,希望大家能坚持,不要害怕失败。遇到问题的时候先尝试着自己解决,等解决不了的时候再请教别人!

不仅学Android要如此,学习其他方面的东西也应该如此。学习靠积累,持之以恒方能见效。

四、致谢

在此,感谢我的实习单位给了我这次实习的机会,能让我学到这么多在学校学不到的东西。同时也要感谢我的组长,能在那么繁忙的工作中还对我提出的问题耐心解答。也感谢我周围的同事,不因为我是一个实习生而对我有偏见,他们待人都很诚恳,也因为他们,我才能这么快的融入到这个团队中,带着轻松愉快,积极奋进的心态结束了这些天的实习。再次感谢帮助过我的这些人!

指导教师签名:

成绩评定:

年 月 教学系:(签章)年 月 日

篇2:android程序报告

课程设计报告书

2017-2018学年第一学期

课程名称:《Android应用程序设计课程设计》

设计题目: 计算器的设计和实现 系

别: 信息工程系 班

级: 移动16 姓 名: 杨芝源 起止日期: 2018.1.2---2018.1.12 指导教师: 黄旺华

摘要

Android是当今最重要的手机开发平台之一,他是建立在Java 基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。

本实训是在学习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java语言程序设计的基本技能和Android编程的应用开发手机app,并较系统地掌握JAVA语言程序设计开发方法以及帮助文件的使用等。

简单计算器又是手机上必备的小程序,所以此次创新实践很有意义,使用性很强。

关键词: Android 手机app 计算器

目录

1、需求分析...................................................................................................................1

2、概要设计...................................................................................................................2

2.1 总体设计...................................................................................................2 2.2 模块设计...................................................................................................3

3、详细设计...................................................................................................................5

3.1 输入模块...................................................................................................5 3.2 显示模块...................................................................................................5 3.2 计算模块...................................................................................................5

4、实现............................................................................................................................7

4.1 公共类.......................................................................................................7 4.2 加减乘除模块1........................................................................................7 4.3 三角函数模块2........................................................................................7 4.4 某某模块3................................................................................................7

5、测试..........................................................................................................................8

5.1 测试方案...................................................................................................8 5.2 测试用例...................................................................................................8 5.3 测试结果...................................................................................................8

6、总结..........................................................................................................................9

1、需求分析

随着智能手机的普及,生活工作等方面的应用都迁移到手机中,本课程设计旨在实现一种某某的APP,为人们解决设计一款基于Android系统下的计算器,实现一般计算器可以进行的加减乘除算法,科学计算三角函数以及清零操作。

通过对该问题的分析,APP主要涉及的对象有:计算器

主要的事务是:

1、计算器界面友好,方便使用,具有良好的交互性。

2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。

3、能够判断用户输入运算数是否正确。

4、支持小数运算。

5、具有退格功能,能够删除最后一个输入,ce。

6、具有清除功能,删除所有,c。

7、具有结果存储功能,能够显示存储器状态,支持触屏手机。

需求分析得出的流程图:

知道了系统的功能以后,我们通过main.xml来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。系统流程图如图所示:

2、概要设计

2.1 总体设计

整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其它功能)这三大部分。

在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其她的功能。

总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。

主要:由于不同的Android手机有着不同的分辨率,将不同分辨率的图标图片放置在相应位置。Drawable-hdpi中放置分辨率最高的图标,drawable--ldpi中放置分辨率中等的图标,drawable-mdpi中放置在分辨率最低的图标。

2.2 模块设计

一、输入模块

输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。

二、显示模块

显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其她的信息。

三、计算模块

计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能。、详细设计

3.1 输入模块 一)界面效果

二)类块模型图

3.2 显示模块 一)界面效果

二)类块模型图

3.3 计算模块 一)界面效果

二)类块模型图、实现

开发环境介绍

4.1 公共类

4.2 某某模块1

4.3 某某模块2

4.4 某某模块3

74、测试

5.1 测试方案

5.2 测试用例

5.3 测试结果

篇3:android程序报告

活动 (Activity) -用于表现功能

服务 (Service) -相当于后台运行的Activity

广播接收器 (Broadcast Receiver) -用于接收广播

意图 (Intent) -用于连接以上各个组件, 并在其间传递消息

1 Activity介绍

Android中, Activity是所有程序的根本, 所有程序的流程都运行在Activity之中, Activity可以算是开发者遇到的最频繁, 也是Android当中最基本的模块之一。在Android的程序当中, Activity一般代表手机屏幕的一屏。如果把手机比作一个浏览器, 那么Acitivity就相当于一个网页。在Activity当中可以添加一些Button、Check box等控件。可以看到Activity的概念和网页的概念相当类似。一般一个Android应用是由多个Activity组成的。这多个Activity之间可以进行相互跳转, 例如, 按下一个Button按钮后, 可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是, Activity之间的跳转有可能返回值, 例如, 从Activity A跳转到Activity B, 那么当Activity B运行结束的时候, 有可能会给Activity A一个返回值。这样做在很多时候是相当方便的。

当打开一个新的屏幕时, 之前一个屏幕会被置为暂停状态, 并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕, 因为Android会把每个应用的开始到当前的每一个屏幕保存在堆栈中。

Activity是由Android系统进行维护的, 它也有自己的生命周期, 即它的一个产生、运行、销毁的一个周期, 对于Activity, 关键是其生命周期的把握, 其次就是状态的保存和恢复 (on Save Instance State on Restore Instance S-tate) , 以及Activity之间的跳转和数据传输 (intent) 。

2 Service介绍

Service是android系统中的一种组件, 它跟Activity的级别差不多, 但是他不能自己运行, 只能后台运行, 并且可以和其他组件进行交互。Service是没有界面的长生命周期的代码。Service是一种程序, 它可以运行很长的时间, 但是它却没有用户界面。这么说有点枯燥, 我们来看个例子。打开一个音乐播放器的程序, 这个时候若想上网了, 那么, 我们打开Android的浏览器, 这个时候虽然我们已经进入了浏览器这个程序, 但是, 歌曲的播放并没有停止, 而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止, 例如, 当播放列表里边的歌曲都结束, 或者用户按下了停止音乐播放的快捷键等。service可以在和多场合的应用中使用, 比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放, 比如检测SD卡上文件的变化, 再或者在后台记录你地理信息位置的改变等等, 总之服务嘛, 总是藏在后头的。

3 Broadcast Receiver介绍

在Android中, Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而Broadcast Receiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用Broadcast Receiver来让应用对一个外部的事件做出响应。这是非常有意思的, 例如, 当电话呼入这个外部事件到来的时候, 可以利用Broadcast Receiver进行处理。例如, 当下载一个程序成功完成的时候, 仍然可以利用Broadcast Receiver进行处理。Broadcast Receiver不能生成UI, 也就是说对于用户来说不是透明的, 用户是看不到的。Broadcast Receiver通过Notification Manager来通知用户这些事情发生了。Broadcast Receiver既可以在Android Manifest.xml中注册, 也可以在运行时的代码中使用Context.register Receiver () 进行注册。只要是注册了, 当事件来临的时候, 即使程序没有启动, 系统也在需要的时候启动程序。各种应用还可以通过使用Context.send Broadcast () 将它们自己的intent broadcasts广播给其他应用程序。注册Broadcast Receiver有两种方式:

4 Intent介绍

Intent是一个将要执行的动作的抽象的描述, 一般来说是作为参数来使用, 由Intent来协助完成android各个组件之间的通讯。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述, Android则根据此Intent的描述, 负责找到对应的组件, 将Intent传递给调用的组件, 并完成组件的调用。因此, Intent在这里起着一个媒体中介的作用, 专门提供组件互相调用的相关信息, 实现调用者与被调用者之间的解耦。例如, 在一个联系人维护的应用中, 当我们在一个联系人列表屏幕 (假设对应的Activity为list Activity) 上, 点击某个联系人后, 希望能够跳出此联系人的详细信息屏幕 (假设对应的Activity为detail Activity) 。为了实现这个目的, list Activity需要构造一个Intent, 这个Intent用于告诉系统, 我们要做"查看"动作, 此动作对应的查看对象是"某联系人", 然后调用start Activity (Intent intent) , 将构造的Intent传入, 系统会根据此Intent中的描述, 到Mani Fest中找到满足此Intent要求的Activity, 系统会调用找到的Activity, 即为detail Activity, 最终传入Intent, detail Activity则会根据此Intent中的描述, 执行相应的操作。Intent主要是用来启动其他的activity或者service, 所以可以将intent理解成activity之间的粘合剂。Intent具体有一下3种形式:

通过start Activity方法来启动一个新的Activity;

通过broadcast Intent机制可以将一个Intent发送给任何对这个Intent感兴趣的Broadcast Receiver。

通过start Service (Intent) 或bind Service (Intent, Service Connection, int) 来和后台的Service进行交互。

5 小结

Activity是应用的"眼睛", 其展示给用户, 可以用来交互;而Broadcast Receiver是"耳朵", 其接收发生的Intent;Service则相对于"手", 其把事情做完。Intent作为它们的辅助工具起到串联的作用, 辅助这些组件完成通讯的任务。

摘要:近几年, 在智能手机系统群雄纷争的时候, 2008年Google推出了一款名为Android的开源智能手机操作系统。Android凭借其开放性和良好的人机界面, 受到广大手机生产商的重视, 随着3G时代的到来, Android有可能会改变现在智能手机市场的格局。Android是由Linux操作系统、中间件以及核心应用程序组成的专门为移动终端设备开发的层次软件集。在对Android学习中, 主要做了以下的研究:首先, Android系统是一个层次的软件集, 所以先从层次方面对Android进行系统研究, 主要对其运行时环境层以及Android应用框架层的研究;其次, 通过对Android平台上应用的开发, 更进一步了解Android这个系统, 在开发中, 尤其注重Android的Intent机制的使用。随着Android手机的诞生, 其无可替代的灵活性与轻便性致使Android手机成为智能手机市场的又一亮点。

关键词:Android,Activity,Service,BroadcastReceiver,Intent

参考文献

[1]Android SDK开发范例大全.人民邮电出版社, 5 (4) .

[2]Android开发入门与实战.人民邮电出版社, 20 (4) .

[3]大话企业级android开发全集.国士工作室, 36 (1) .

篇4:android程序报告

Android.FakeInstaller就是这样一个广泛传播的移动恶意软件系列。它曾假冒奥运会赛事成绩应用程序、Skype、Flash Player、Opera 和许多其他流行应用程序。事实上,在移动恶意软件界,FakeInstaller 系列是我们所见过的最猖獗的恶意软件之一。来自McAfee的最新数据显示,目前所处理过的针对 Android 系统的恶意软件样本中,超过 60%是来自 FakeInstaller系列。随着其增加了服务器端多态、混淆、反逆向以及频繁重编译等伎俩用来逃避检测,这一威胁已逐渐加大。

Android.FakeInstaller 会向收费服务的电话号码发送消息,无需用户同意,便可将自身伪装成合法的安装程序。这一恶意软件有大量变体,通过数以百计的网站和假冒市场进行传播,且覆盖面逐日扩大。

Android.FakeInstaller 图标

在用户搜索流行应用程序时,如果通过搜索引擎或社交网络不慎访问了一个假冒的官方站点或假冒市场,就会遇到貌似合法的应用程序,包含截屏、用户评价、说明、视频等,以引诱受害者下载恶意软件。当用户在执行 Android.FakeInstaller 时,首先会显示一个服务协议,告诉用户将会发送一条或多条短信,这一界面足以迷惑很多人,当用户开始点击“同意”或“下一步”按钮,系统便开始强制性的给用户发送收费短信。我们还发现一些版本在受害者点击按钮之前,便已经发送了短信。

Android.FakeInstaller 有不同的版本,它会模拟合法应用程序的安装或下载界面

在用户点击按钮后,FakeInstaller 有时会显示一个虚假的下载进度条。最后,对话框关闭,受害者被重定向到另一个假冒市场。用户也不可能得到想要的应用程序。

多态服务器

与此同时,我们还发现了FakeInstaller 的若干变体,它们的相同点都集中在有效载荷方面,主要区别在于代码实现。其中一些还带有额外有效荷载。一般情况下,每个系列都与一组服务器、域名和假冒应用程序市场相关联。

而由于多数 FakeInstallers 是服务器端多态的,因此这种关系非常强大,这意味着服务器(根据其配置)可能会针对同一 URL 请求提供不同的 APK 文件。

如果受害者要从假冒市场下载应用程序,服务器会将浏览器(browser)重定向到另一个处理该请求的服务器,并发送定制好的 APK,该 APK 包含一个在生成的 URL 中关联的 ID。APK 文件与受害者的 IP 地址相关联。

例如:假冒的“Opera Mini 6.5” APK 文件会从一个 URL (http://[censored]loads.ru/tds?r=3967) 下载,而从两个 IP 地址(A 和 B)访问。因此,受害者被重定向到不同的 URL 并下载非常相似的 APK 文件,这些文件会在 file res/raw/config.txt 中包含一些差别之处,它们与重定向的 URL 相关。

下图显示了 file res/raw/config.txt 内部的差别,它们存在于下载自 IP地址 A 和 B 的.样本中。

因此,这一改动会导致数字签名(MANIFEST、MYKEY2.SF 和 MYKEY2.RSA)的变化。这一恶意软件的其他变体包含一个图片(或一个俄文笑话)以增加或改变 APK 文件的大小。

向收费号码发送消息

以前的 FakeInstaller版本都是针对西欧用户创建,如今,恶意软件开发者已经将其欺诈的触角延伸到了其他国家与地区——通过添加指令来获得设备的移动国家码和移动网络码。根据这类信息, Android/FakeInstaller 会选择收费号码并向其发生短信。最初版本的短信都包含在 DEX 文件中,而最新版本的短信则包含在 APK 中的加密 XML 文件里。迄今为止,我们已经发现最多发送达7条收费短信的 FakeInstaller 样本。

逃避分析:Java 混淆和重编译

通常,在一个假冒市场,所有应用程序都包含相同的 DEX 文件。经过一段时间,会为所有应用程序变更 DEX 文件。恶意软件编写者会使用同一代码新的重编译版本来更改其 DEX 文件,或者实施新的功能并包含一些外观变化,假冒安装进度条动画、图标和文本等。

最新版本的 FakeInstaller 包含同一代码的不同重编译混淆版本,更改源文件名、行号、字段名、方法名、参数名和变量名等。

在下图中,我们可以看到同一变体的两个混淆版本,它们在两天时间里出现在同一假冒市场:

诸如 ProGuard 或 DexGuard 之类的混淆会删除调试信息并将所有名称替换为无意义的字符序列,这样就更难以对代码进行逆向工程。有些版本(如 Android.FakeInstaller.S)还包含反逆向伎俩,能够有效规避动态分析,防止恶意软件在模拟器中运行。

僵尸网络伎俩

有一些版本的 Android.FakeInstaller 不仅仅向收费号码发送短信,还包含后门程序以便从远程服务器接收命令。FakeInstaller.S 使用“Android Cloud to Device Messaging” 来将受感染的设备注册到一个数据库,并从恶意软件编写者的Google 帐户向它们发送消息 (URL)。

传播伎俩

由于服务器端的多态性,我们还不得不考虑的一个问题是新的假冒网站和假冒市场每天都会涌现。这些站点将受害者的下载重定向到一组 IP 地址和域,如下图所示:

一些此类站点看上去相当具有迷惑性,并且能轻易地让受害者中招,原因在于它们被索引在诸如 Yandex 之类的搜索引擎中,在搜索结果排名中有着不错的位置。为了逃避检测,一些假冒站点会将来自恶意来源的应用程序下载链接重定向到无害的 APK 文件,然后再恢复链接。

我们还曾发现有的站点将 URL 通过 Twitter 由僵尸帐户和假冒 Facebook 配置文件进行共享。

结论

篇5:Android完全退出应用程序

自定义一个继承自Application的类,用来记录所打开的Activity。

在每个Activity类的onCreate方法中调用ExitApplication.newInstance.addActivity(this);将Activity类添加到list中。

在退出时调用ExitApplication.newInstance().exit();循环执行finish();

public class ExitApplication extends Application {

private static List acList = new LinkedList();

private static ExitApplication instance = null;

private ExitApplication(){}

//单例模式

public static ExitApplication newInstance(){

if(null==instance){

instance = new ExitApplication();

}

return instance;

}

public void addActivity(Activity a){

acList.add(a);

}

public static void exit(){

for (Activity activity : acList) {

activity.finish();

}

System.exit(0);

}

篇6:android程序报告

前提条件:

1、操作系统建议为Windows XP、32位Windows Vista、32位Windows 7

2、USB数据线、Desire电量高于30%、电脑系统能正确识别Desire

3、Android SDK(2.1版本下载 / 2.2版本下载)

4、良好的心理素质以及动手能力

5、已取得root权限

6、rooting文件包(立即下载)

具体操作方法如下:

1、手机连接USB线后,用音量键”下“+电源键开机,出现红色叹号后,运行rooting包的recovery-windows.bat进入绿色recovery界面(不要关闭cmd窗口)

2、另开一个cmd窗口,进入rooting文件所在目录,装载/system目录

操作代码:

adb-windows shell mount /system

3、显示系统已安装的程序

操作代码:

adb-windows shell ls /system/app/

显示结果如下:

AccountAndSyncSettings.apk

ApplicationsProvider.apk

Bluetooth.apk

...........

HtcStreamPlayer.apk

htcsettingwidgets.apk

HtcSyncwidget.apk

HtcTwitter.apk

...........

4、有两种移除程序的方式:彻底删除或者移到SD卡上

A、彻底删除,

举例,操作代码:

adb-windows shell rm /system/app/Stock.apk

adb-windows shell rm /system/app/com.htc.StockWidget.apk

B、移到SD卡的某个目录下。

举例,操作代码:

adb-windows shell mkdir /sdcard/device_files (注释:这行代码是创建文件夹)

adb-windows mv /system/app/Stock.apk /sdcard/device-files

adb-windows mv /system/app/com.htc.StockWidget.apk /sdcard/device-files

篇7:android程序报告

1.减少布局的嵌套,这一点也是最重要的

搞android的都知道,android的整个UI布局文件最后也是要一层一层的解析成View对象的,如果层次太深的话,对导致递归的层次太深而极大的影响解析速度,所以,我们一定不能让布局文件的层次太深,要想做到布局文件的层次不深,通常用到的手段有:1)使用RelativeLayout代替LinearLayout。2)编写完布局文件时,可以使用HieracyView工具检查是否有多余的无用布局,如果有,则一定要去掉无用的布局。

2.布局重用。

一些可以公用的布局我们不必要每次都重写一遍,可以将其写为一个独立的布局文件,最后使用include标签将布局引用即可,然而,严格上来讲,布局重用只是减少了我们代码的编写量,并不能达到对应用的优化作用,而且,在使用include时会很容易产生第一点中的无用父布局,如下图:

如何去除使用include代来的负作用,下面会有方案。

3.使用merge标签去消除include标签所引入的无用布局

使用merge时要注意,merge标签只能是根布局,结合2,3两点看一个示例用法:

首先,创建一个merge标签的根布局,代码如下:

?xml version=”1.0“ encoding=”utf-8“?>接着,使用include引入布局:

4.利用 ViewStub延迟加载一些用不到的布局,在一些场合取代android:visibility=”gone"的用法,因为被gone掉的布局不断是会同时创建对象的,那为什么使用ViewStub就高效呢,拿源码来说话,先看一下ViewStub源码:

@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(0, 0); }

 

@Override

publicvoiddraw(Canvascanvas) {

}

由onMeasure方法和draw()方法可以看出, ViewStub的初始宽高都是零,所以他开始不会占用空间,其次draw()方法也没有执行任何的绘制,由这两个方法就可以看出,ViewStub的确很高效。

在代码中要操纵ViewStub的时候,要首先使用viewstub.inflate()方法,将其所拥有的View初始化进去。否则会报空指针错误。

5.减少不同层间的背景重绘,例如,如果某个view父布局的背景已经设置为了白色,则不需要再为此view设置背景色,通过这个简单的小技巧,可以非常多的提升速度。

6.如果整个App都使用了自定义的Title和background,则我们可以使用自定义的style,永久的去掉系统默认为我们的Activity所添加的title和background,也可以提高Activity的渲染速度。

篇8:android程序报告

近年来随着Global Positioning System即全球定位系统的高速发展, 越来越多的研究单位和企业将GPS大量地运用到人们生活的方方面面。同时, 随着Android系统的发展与普及, 功能繁多的软件被开发并应用于人们的日常生活中。Android系统自诞生发展至今凭借着自身的优势已经成为目前广受欢迎的移动设备操作系统。众多的投资者和研发人员将目光投向android和GPS的结合, 利用android自身的优势和GPS的迅猛发展, 使这两项技术能更好地服务人们的工作和生活。鉴于此, 众多的android系统软件都实现了GPS定位功能来丰富自身的内容和服务范围。因此, 本文设计了一个基于Android手机的定位程序, 希望能为读者提供一些有益的参考。

2. Android平台系统架构

众所周知, Linux是一套免费的自由且开源的操作系统, android在基于Linux内核的情况下继承Linux的自由及开源。作为一种应用于移动设备的操作系统, android主要运用在手机、平板电脑上, 目前更多的运行android系统的新产品也出现在人们的日常生活中, 例如可穿戴设备以及智能电视等。如图1所示, 我们可以看到在android系统架构采用了分层的系统架构, 由高层到底层分别为Application (应用程序层) 、Application Framework (应用程序框架层) 、Libraries (系统运行库层) 、LinuxKernel (Linux内核层) 共四层, 如下是对每层的简要介绍:

1) 应用程序层 (Application) :应用程序层主要是提供一些核心应用程序包, android软件主要是用java语言来编写的, 企业和独立开发者们可以开发属于自己的应用程序并且这些第三方软件与android的核心程序的地位相同。

2) 应用程序框架层 (Application Framework) :该层是Android应用开发的基础, 开发人员可以通过访问核心程序提供的API来开发自己的应用程序, 任何的第三方软件都可以提供自己的API供其它软件使用。

3) 系统运行库层 (Libraries) :系统库包括九个子系统和Android运行库, android的运行库包含Core Libraries (核心库) 和Dalvik VM, Core Libraries涵盖了Android的核心库, 同时兼容Java需要调用的功能函数, Dalvik是由谷歌设计开发的用于Android的java虚拟机, 是Android移动设备平台的核心组成部分。

4) Linux内核层 (Linux Kernel) :提供Android的核心系统服务。

3. Android GPS定位技术

一般移动设备中都有GPS卫星定位模块, 软件通过该模块可以实现定位、导航等基本功能并能扩展出更加强大的功能。Android的系统库里提供了地理定位服务的接口, 可以实现大多数的功能, 例如最基本的获取当前设备所在经纬度, 选择利用网络来定位还是卫星定位亦或是基站定位, 定时刷新设备的位置, 另外还可以设置特定区域限制设备所在的位置, 当设备不在规定范围内可以发出提示信息等, 目前网络地图开发商提供有API, 例如我们常用的Google map和百度地图, 通过手机自身的定位服务和这些API共同使用便可以实现更多更强大的功能。

4. Android平台下与地理位置相关的类

说到Android的定位服务就不得不提到Android.location包, 该包内提供了关于地理定位系统很多便捷的API, 主要类如表1所示。

5. 实现经纬度的定位

1) GPS定位方法。一般情况下, 我们可以应用Location Provider提供的GPS Provider或NETWORK Provider实现定位, GPS Provider使用GPS定位方式来实现手机的定位;NET-WORK Provider则采用网络和基站实现定位, 本文采用GPS定位方式来实现设备的定位。

Android Manifest.xml是Android的工程描述文件, 在每个Android项目中起到重要的作用, 要使本应用程序可以使用设备定位我们必须在此声明如下权限:

android.permission.ACCESS_FINE_LOCATION, 该权限声明当前设备采用GPS卫星定位的方式进行定位, 是所有定位方式中较为精确的一种。

android.permission.ACCESS_FINE_LOCATION或android.permission.ACCESS_COARSE_LOCATION, 该权限声明当前设备采用基站定位和网络进行定位, 相对于GPS卫星定位来说这两种方式都较为粗糙。

2) 布局文件。较为简单地设置一个Id为text Viewid的Text View用来显示经纬度, 同时设置一个Id为buttonid Button用于绑定监听器。

3) 地理定位方法。首先在Android中通过get System Service方法的调用获取Location Manager的实例, 通过使用LocationManager获取位置的提供者, 基本的位置提供者包括GPS (GPS卫星定位) 、network (Wi Fi以及基站定位) 、passvie (无源定位, 即综合所有的定位方式得到最精准的位置信息) 。获取LocationManager的实例之后我们调用request Location Update方法来周期性地更新设备位置, request Location Update方法共有三个参数, 其中第一个参数是设置获取位置的提供者, 第二个是更新的时间, 单位是毫秒, 第三个是更新的距离, 单位是米, 最后一个参数location Listener用来监听定位信息的改变, 需要实现表2所示的方法。

关于地理定位主要方法的使用如下代码所示:

4) 经纬度定位的实现。运行程序点击按钮“绑定监听器”后, 手机中的GPS模块便会获取当前所在经纬度并实时监听, 当我们的位置发生变化后将经纬度打印在textview中。实现效果如图2所示, 分别是位于吉首大学张家界校区图书馆时的经纬度和位于长沙市火车站时的经纬度。

6. 结语

本文介绍了Android系统的基本架构和地理定位技术, 较详细地分析了应用程序定位的相关类和方法, 给出了一个程序实例, 通过手机内置GPS模块实现了用户当前的经纬度定位, 在以后的开发过程中我们可以通过这个定位调用googlemap或者百度地图提供的API使用其他的服务。

摘要:首先对Android系统架构及GPS定位技术进行简单的介绍, 分析地理定位的相关类及方法, 给出定位程序的实现步骤和关键技术, 最后通过一个实例实现了经纬度的定位。

关键词:Android平台,GPS定位,程序设计

参考文献

[1]朱桂英.Android开发应用从入门的精通[M].北京:中国铁道出版社, 2011.

[2]代敏.基于Android平台下手机定位程序的设计及实现[J].计算机与数字工程, 2012, 40 (4) :143-145.

[3]祝洪娇.基于Android平台的位置服务系统的设计与实现[D].北京交通大学, 2011.

篇9:android程序报告

关键词:软件开发流程 Android程序 团队合作 经验交流

中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2014)10(b)-0020-01

计算机是个神奇而美丽的世界,只有真正的体验过,才会体会到创造所带来的乐趣。第一次开发比较大型的Android应用程序,需要的技术有很多是平时从未接触到的,成员们就一边学习,一边开发,纵有收获带来的喜悦,其中也免不了失败带来的失落和艰辛。由于刚开始的每一步都比较艰难,但这是一个过渡期,过了之后,你会发现许多事情事实上并没有想象中的那么难,很多人都是很难迈出那第一步,所以要想成功,就要选择坚持,学会迎难而上,那么你就会发现收获的不仅是知识上的,更多的是来自以后面对困难的勇气和责任。

“万事开头难”,只有鼓起勇气跨出那犹豫不决的第一步,才有机会去走后面的每一步,才有机会走向成功。

1 重视规划设计

软件开发最重要的就是前期的规划和它的设计架构,就好比是摩天高楼的地基,即使只有一块砖没摆好都有可能导致整个高楼建设失败。在没有真正开始这个项目之前,队员们对所谓的规划及其重要性的揣测都很模糊,只是大概的理解。当真正接手去做,才发现原来前期规划涉及了市场、产品和技术研发等各个方面,包括需求分析书、产品规格说明书、设计说明书、界面设计、数据库设计等大量前期的准备。这么多的东西让第一次参与开发的我有些发懵,不知道这些规划书需要做到什么程度,以至于单纯地认为只需要把软件的每个功能表述清楚就好。但是当真正深入开发之后,会发现自己所做的仅仅只是开了个头而已。

虽说还处于前期的设计阶段,但数据库和界面的设计已经开始了。面对庞大的工作量,队员们选择先将软件的设计方案确定下来,并且要足够的准确、细致、清晰,所有涉及开发的人员都能够清楚的理解它所要表达的意思。然后在确定方案之后,队员们要在界面、数据库等的设计规划方面,做详细的分工。为了使工作更好地开展,在整个工作过程中,队员之间也要一直保持讯息的通畅,以此来保证各部分的完美契合。

2 学会编程

编程是一门艺术,更是一门技术。通过看教程,搜集相关资料,知道了什么是Java、什么是eclipse、什么是模拟器、什么是环境变量,什么是SDK,学习的过程很漫长,但是要从中体会到知识带给我们的快乐。但是即使是这样的学习,成员们还是没能真正搞清楚它们之间的联系,要说对它们有了更多的了解是在之后的编码过程中。这些编程并没有想象中的那么容易,还没开始编程,只配置编程环境就花了不短的时间。

看完教程后,认为自己可以上手了,但是你会发现从教程上所学的东西根本不能直接拿来用,生搬硬套是行不通的,真可谓是举步维艰。每做一步基本都要查书,上网找资料,但是这样的成长速度比之前看教程的效果好得多,而且知识容量也在迅速的增长,这才晓得只有实践才是学习新东西最快捷的途径。自己遇到的问题越来越少,开发也变的起来越来越顺畅,这才深刻体会项目经验对于技术开发人员来说是多么重要。

3 重视团队组织合作

在团队作战方面由于之前没有任何经验,在这里就出现了比较严重的问题。因为实验项目给的时间比较长,队友相对都比较轻松,再加上开发阶段的组织根本没有到位,后果就是严重影响了团队开发的热情和项目进度。随着时间的临近,开发热情变成了整体的负担,甚至团队里有人出现了想要放弃的念头,团队的开发工作这个时候出现了严重的危机。出现这种情况的原因主要以下几点。

(1)没有制定一个明确、详细的时间进度计划表,并且进度计划并没有严格执行。

(2)队员间的交流沟通不够,许多问题不能及时的解决,这也是造成拖拉的重要原因。

(3)分工不合理,项目的模块的粒度粗细没有掌握好,造成了有的队员的压力比较大,积极性受到影响。

面对这些问题,队员们采取相应的措施来重塑队友的信心和提升整个团队的战斗力。

首先成员们对项目的时间进行了重新的规划,做到每个时间段尽可能的详细。对项目的构架进行了重新的调整,Common层提供基础服务,Repository层提供MySQL数据库的访问,Service层提供各种业务逻辑方面的服务,UI层提供界面。让每位队员对自己负责的部分清晰,并且对自己负责的部分有信心。

对于队员,要求每天除了上课的时间,都要保证在团队进行学习开发,有事情要事先说明和请假,这样确保了团队的开发氛围和队员之间的交流,并且就出现的问题能及时的交流和解决。此外,要求每位队员在每周的例会上对自己本周的进度进行汇报,进度不达标的要“加班”完成,这样确保了项目进度的一致。

在队友们的共同努力下,项目的开发终于有了起色。在开发最枯燥的时候,队友的相互鼓励重新燃起了对开发的热情,整个团队充满了正能量。这种和队友一起奋战,一起努力的时光,我相信在大学里面这将是独一无二的记忆。收获的不仅是知识和面对困难的勇气,还有队友之间的友谊。

4 注重调整测试

这是整个项目的最后的把关,测试要划多次、分批进行,不要全部开发完成再对软件做测试,特别是对自动化单元测试很重要。

在从开始参与开发到最终完成的这个漫长过程中,不得不承认开发是件很枯燥的事,但你也可以从中找到属于自己个性的一面,并从中找到快乐,生活何尝不是这样,需要我们从每天忙碌的生活中去寻找乐趣,寻找面对困难的勇气,寻找面对责任的担当。经历过失败,才能体味到成功的喜悦,要知道,我们的代码真正的像魔法一般改变着这个世界。

参考文献

[1][美]Robert C.Martin,著.程序员的职业素养[M].章显洲,余晟,译.人民邮电出版社,2012.

[2]池建强.MacTalk人生元编程[M].人民邮电出版社,2014.

[3]靳岩,姚尚朗.Google Android开发入门与实战[M].人民邮电出版社,2009.

篇10:android程序报告

二、增加易用性

(6)一样的标志,一样的功能

我们的程序 应该帮助人们通过视觉辨别就可以轻松判断该图案或者按钮代表着怎样的功能,能清晰的分辨出来,而不是让用户费劲脑筋的去猜想这个按钮可能代表什么功能。我们的程序应该极力避免一种情况,类似的图案或者按钮却在不同的地方,代表着不同的功能。

(7)不要打断用户的行为

我们的程序应该像个大明星的私人助理那样,时时刻刻为用户提供帮助,保护人们免受不重要的细节。用户希望保持专注,除非它是至关重要的和时间敏感,一个中断可能会引起用户的不愉快和厌恶。

三、使应用有趣

(1)让程序更容易学习

当我们的用户充分搞清楚情况的时候,他们会感觉良好。我们应该使我们的应用程序更容易学习,我们应该使我们的视觉模式或肌肉记忆变得比其他Android应用程序简单容易。例如,返回的按钮就是一个很好的导航捷径,

(2)用户永远是对的

请有礼貌的促使人们做出修正,友好的。当他们使用你的应用程序,用户希望感受到他们是聪明的,一下子就上手了我们设计的程序,使用流畅,会让他们充满自豪感。如果出现错误,我们应该给明确的修正指令,而不是技术细节。如果我们能在背后修复这个bug,这样更好,而不是把错误抛给用户。

(3)给予用户鼓励

我们的程序应该把复杂的任务分解成一步步的较小的步骤,让用户可以很容易地完成。此外我们的程序应该给用户实时反馈进度,比如说增加一个Progressdialog,即使它只是一个细微的光芒,也会有着意向不到的效果。

(4)让用户变得专业

我们的程序最好可以让用户觉得他们通过我们的程序可以完成一些平时完成不了的事情,比如各行业专家的技术。例如比较火的美图秀秀,结合多个照片效果可以使业余照片看起来只需要惊人的只有几步。

(5)我们的程序应分清主次

切记一点,我们的程序 并不是所有的行为都是平等的。在我们的应用程序里,我们开发人员应事先决定好什么是最重要的,对于这款应用来说是最核心的功能,让该功能容易找到和快速使用。比如360相机的快门按钮或者天天动听的音乐播放器暂停按钮。

篇11:android程序报告

一、废话少说直接上代码.至于涉及到的相关包在Eclipse使用快捷键CTRL+SHIFT+O即可搞定.

?

private static Boolean bExit = false;

@Override

public boolean onKeyDown(int keyCode,KeyEvent event)

{

if(keyCode == KeyEvent.KEYCODE_BACK)

{

if (bExit == false)

{

bExit = true;

final TimerTTimer = new Timer;

TTimer.schedule(new TimerTask(){ @Overridepublic void run() {TTimer.cancel();bExit = false;}}, ); //如果2秒内再次按下返回键则bExit = true

}

else

{

ExitApp();

}

}

return false;

}

/*****************************************************************************************************************************************/

private voidExitApp()

{

AlertDialog dlg =

new AlertDialog.Builder(MainActivity.this).setMessage(“确定要退出本APP么”).setPositiveButton(“确定”,new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface arg0,int arg1)

{

finish();

System.exit(0);

}}).setNegativeButton(“取消”,new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface dialog,int arg1)

{

dialog.dismiss();

}}).create();

dlg.show();

}

}

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【android程序报告】相关文章:

android应用程序架构05-06

android开发实习报告总结06-09

Android实验报告—网络通信06-16

Android终端05-15

Android测试05-18

Android手机05-29

android安全机制05-25

android面试题目05-03

android项目心得05-16

android应用学习总结04-09

上一篇:节日礼品批发厂家哪家好?下一篇:一年级秋天教学设计