您的位置:首页 > 其它

软件工程与个人项目的结合

2016-03-04 01:05 281 查看
我们做产品与项目的,必须要知道该产品的价值,我们要做的是价值的调研,我们的智慧餐厅要深入到餐厅中去询问,跟开餐厅的人了解,餐厅有餐厅的具体需求,不是你凭空想想就能完成的,所以做社会调研这一块是很重要的额

然后,我们详细的了解一下项目的背景,这对我们项目的开展功能很重要。

我们在研究了背景之后,我们要做一下可行性分析报告,我们的技术是否可行,我们能不能解决?我们组建的团队能否解决这些问题,不可能解决的话咋办?这些都是作为一个项目产品经理要去弄明白的东西。

假设风头给了你500万,你将会怎么用?

开发成本要考虑吧?其中包括人员成本,外包吧,开发周期一年吧,所以经常会有老板会去催进度,因为老板为了节省成本,必须要做的就是计算每一笔钱的支出,只有这样精打细算过后的指出才算一个完整的规划。

我们要考虑其中的生产成本等等方面,因为假设是计算机硬件产品,它自身的生产就是存在成本的,怎么样才能缩短生产成本,这是值得深思的,除此之外还有其中的推销成本,怎么样让别人使用上你的产品,推销很重要的

作为一个老总,我们总是要计算多长时间过后才能收回成本的吧,换一种角度就是,究竟要卖出多少产品才能使自己的产品盈利。在这些都弄完了之后,我们要完成的是组建成员,其中就包括找硬件还是软件的同学一起做项目,或者是找美术系的同学做UI,找数学系的弄算法,最后找外语系的弄英语文档,经管系的做市场调研和推销。就这样我们的团队搭建好了之后,我们要做的事,就是做需求分析,好的需求分析一定是站在用户的角度看问题,计算机解决用户的痛处,解决问题,创新,对用户群进行分析。

现在我们的项目是进入了快速开发阶段,就是需求是可以不断的修改的,主要是随着我们认识的不断深入,然后会不断的修改需求的。在这个阶段就是应用程序先做UI部分,如果UI跟不上的话,再说。仿佛又听到了,怪我咯。。。

数据库的设计,其实就是数据结构的设计

流程图的重要性不言而喻,我们是很看中流程图的。这是算法的体现。

软件测试,功能测试。

今天课上,老唐讲了关于APP耗电的设计,这个问题是我之前就有略微的想过的,但是一直不知道怎么样才能简化代码,起到减少项目耗电的问题。后面的文章会注意再次提出来的解决的。

提到了go 语言,将会替代C,成为未来开发服务器的语言

erlang语言,百度和阿里会用到,现在学了也用不上。

使用Linux命令reboot -p来完成立即关机的功能。

使用修改开机项,直接加载那个专用APP。

使用系统自带的英语,省去的麻烦。

安卓的系统开机时间是很久的,这一部分还没有接触到。

怎么样实现串口通讯,使用窗口助手来调试。

聊到安卓的刷机技术的应用,就是找bug。

系统无缘无故弹出的报错对话框

以下解决的是如何缩短安卓的开机时间

可以从以下几个方面来缩短开机时间。

1、Bootloader时间缩减

2、Kernel时间缩减

3、System server时间缩减

4、裁剪apk

一、缩减bootloader的时间。 bootloader用的时间比较少。一般不做修改。

二、缩减kernel时间 缩减系统加载的驱动。去掉那些不用的驱动程序。

三、裁剪加载的system server 裁剪系统自动加载的server。

四、裁剪系统开机apk 根据需求去掉不用的apk,能大大缩短系统的开机时间。

下面是系统常用apk的功能和裁剪记录。

Apk裁剪记录

ApplicationsProvider.apk,应用程序存储、 程序管理器,可裁剪

BackupRestoreConfirmation.apk,设置->备份和重置 可删除,可删除

Bluetooth.apk 蓝牙,前期可删除

Browser.apk 浏览器 ,可删除

Calculator.apk 计算器, 可删除

Calendar.apk日历, 可删去

CalendarProvider.apk日历储存 ,可删除

CertInstaller.apk,证书安装管理,可删除

ChromeBookmarksSyncAdapter.apk ,Chrome的书签同步,可删除

Chrome.apk ,Chrome浏览,可删除

ConfigUpdater.apk ,配置更新, 可删除

Contacts.apk ,联系人, 可删除

ContactsProvider.apk , 联系人储存 ,可删除

DefaultContainerService.apk 软件包访问 ,删除后,安装新apk会有问题,也会影响storage。

DownloadProvider.apk ,下载提供服务 ,可删除

DownloadProviderUi.apk ,下载管理的UI服务 ,可删除

DrmProvider.apk ,受保护数据存储服务 ,可删除

Email2.apk ,,email ,可删除

Exchange2.apk ,电子邮件的服务, 可删除

FaceLock.apk ,人脸解锁, 可删除

FileExplore.apk FusedLocation.apk ,4.2新增 ,不可删除,

Galaxy4.apk ,壁纸 ,可删除

Gallery2.apk ,图片浏览 ,暂时不删除

GenieWidget.apk ,天气 ,可删除

Gmail2.apk ,Gmail, 可删除

GmsCore.apk ,GMS认证相关 ,可删除

GoogleBackupTranspo,谷歌备份传,可删除

GoogleCalendarSyncAdapter.apk ,Google日历同步服务 可删除

GoogleContactsSyncAdapter.apk ,联系人同步 可删除

GoogleLoginService.apk , Google账号登陆服务 可删除

GooglePartnerSetup.apk ,谷歌合作伙伴 可删除

GoogleServicesFramework.apk谷歌服务构架 可删除

GoogleTTS.apk,文字转语音(可删) 可删除

HoloSpiralWallpaper.apk ,Holo壁纸 可删除

HTMLViewer.apk ,HTML查看器(可删) 可删除

InputDevices.apk ,OTG的U盘以及接入PC后,能够让电脑读出手机储存卡的一个程序 ,暂时不删除

KeyChain.apk ,密码管理服务 可删除

LatinImeDictionaryPack.apk ,词典大全(可删) 可删除

LatinImeGoogle.apk ,安卓键盘(可删) 可删除

Launcher2.apk , 主界面, 不可删除

LiveWallpapers.apk, 动态壁纸 可删除

LiveWallpapersPicker.apk , 动态壁纸 可删除

MagicSmokeWallpapers.apk , 烟雾壁纸 可删除

MediaProvider.apk,媒体储存 暂时删除

MusicFX.apk ,音乐音效(可删)可删除

NetworkLocation.apk ,提供网络位置(可删) 可删除

Android的开机流程

系统引导bootloader

1) 源码:bootable/bootloader/*

2) 说明:加电后,CPU将先执行bootloader程序,此处有三种选择

a) 开机按Camera+Power启动到fastboot,即命令或SD卡烧写模式,不加载内核及文件系统,此处可以进行工厂模式的烧写

b) 开机按Home+Power启动到recovery模式,加载recovery.img,recovery.img包含内核,基本的文件系统,工程模式烧写

c) 开机按Power,正常启动系统,加载boot.img,boot.img包含内核,基本文件系统,正常启动手机(以下分析正常启动)

内核kernel

1)源码:kernel/*

2) 由bootloader加载

文件系统及应用init

1) 源码:system/core/init/*

2) 配置文件:system/rootdir/init.rc,

3)init是由内核启动的用户级进程,它按照init.rc中的设置执行:启动服务(指linux底层服务,如adbd提供adb支持,vold提供SD卡挂载等),执行命令和按其中的配置语句执行相应功能

重要的后台程序zygote

1) 源码:frameworks/base/cmds/app_main.cpp等

2) zygote是在init.rc中被指定启动的服务,该服务对应的命令是/system/bin/app_process

a)建立Java Runtime,建立虚拟机

b)建立Socket接收ActivityManangerService的请求,用于Fork应用程序

c) 启动System Server

系统服务system server

1)源码:frameworks/base/services/java/com/android/server/SystemServer.java

2)被zygote启动,通过System Manager管理android的服务(这里的服务指frameworks/base/services下的服务,如卫星定位服务,剪切板服务等)

桌面launcher

1) 源码:ActivityManagerService.java为入口,packages/apps/launcher*实现

2) 说明:系统启动成功后SystemServer使用xxx.systemReady()通知各个服务,系统已经就绪,桌面程序Home就是在ActivityManagerService.systemReady()通知的过程中建立的,最终调用launcher ()启

解锁

1)源码: frameworks/policies/base/phone/com/android/internal/policy/impl/lock

2) 说明:系统启动成功后SystemServer调用wm.systemReady()通知WindowManagerService,进而调用PhoneWindowManager,最终通过LockPatternKeyguardView显示解锁界面,跟踪代码可以看到解锁界面并不是一个Activity,这是只是向特定层上绘图,其代码了存放在特殊的位置

开机自启动的第三方应用程序

1) 源码: frameworks/base/services/java/com/android/server/am/ActivityManagerService.java

2) 系统启动成功后SystemServer调用ActivityManagerNative.getDefault().systemReady()通知ActivityManager启动成功,ActivityManager会通过置变量mBooting,通知它的另一线程,该线程会发送广播android.intent.action.BOOT_COMPLETED以告知已注册的第三方程序在开机时自动启动。

总结:系统层次关于启动最核心的部分是zygote(即app_process)和system server,

zygote负责虚拟机的建立,以支持各个应用程序的启动,

system server管理android后台服务,启动步骤及顺序。

刷机,提升手机系统性能

一、ROOT: Root权限同Administrator权限,Root是Linux等类UNIX系统中的超级管理员用户帐户,拥有整个系统至高无上的权利,所有对象他都可以操作,黑客在入侵系统时,都要把权限提升到root权限,也就是将自己的非法帐户添加到root用户组。 如果没有ROOT,也就是说获取root权限,所有的系统里面的东西都是锁死的,不能自由更换,而谷歌自带的应用我们未必每个都能用到,那些应用又占用了宝贵的系统资源,可以通过ROOT把自带的应用删掉,以便让手机更流畅,能装更多软件。

二、WIPE:清除手机数据

WIDE DATA:恢复出厂数据。 WIPE这项的时候把CACHE(缓存)也WIPE了吧

WIDE cache:清除缓存。一些软件的遗留记录(eg:UC缓存)清理掉,机会快一些,建议一个月左右WIPE一下这一项。 不清除缓存或出厂数据可能会让手机数据混乱,从而造成新刷的ROM 出现各种问题,比如FC(强制关闭)、 丢失HTC Senes 的插件等状况。因为不同ROM, 引用图片位置可能不同。

三、手机MOD固件(或ROM): 安卓平台手机,经过刷机获得Root权限后,会得到新的recovery模式 (破解root的rom里带的软件,获得root后,可以对其进行升级更新), 通过该模式可以对手机进行类似PC平台的ghost的备份和刷机。 MOD刷机包即欧洲高手编写的,通过SamdroidMod软件修改定制的刷机包。 可定制版本及软件等,该类型的刷机包可直接在手机的在recovery模式下刷写手机的固件。 各种各样的MOD可以挑喜欢的选择。

四、Swap分区: Swap分区即交换区,Swap空间的作用可简单描述为: 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来, 以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没什么操作的程序, 这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时, 再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时, 才进行Swap交换。 其实,Swap的调整对Linux服务器, 特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈, 节省系统升级费用。

五、最常见的刷机的模式——Recovery模式(REC模式): 即在手机上操作的刷机模式。进入方法:需要先ROOT,ROOT后音量减+拨号+开机 (不同机型的进入方法可能有差异,此处为I5700的进入方法) 这里是一些REC模式里面的英文的翻译,不完全,不过大概的都有了:

reboot system now:重启体系

apply sdcard:update.zip:应用SD卡中的update.zip

wipe data/factory reset:清空数值/设定工场标准样式

backup rom to sdcard:备份ROM到SD卡

toggle app2sd:触发APP TO SD

reboot system now:重启体系。

每一次在recovery标准样式下完成不论什么操作都必须要使用到的! apply sdcard:update.zip:应用SD卡中的update.zip。 也就是大家刷机的时候常用到的一个选项! 选择此项后大家就要特别长的等候一段时间··· wipe data/factory reset:清空数值/设定工场标准样式。 会把手机里的所有数值都清除! backup rom to sdcard:备份ROM到SD卡。这个功能近似台式机上的GHOST, 会把你telephone上所有的数值都备份到SD卡上。 (备份文件储存安放位置:SD卡的rombackup文件夹下会以日期开首命名) 恢复的是最后一次备份的记录。备份出来的文件件: boot.img,cache.img,data.img,misc.img,rombackup.md5, recovery.img,splash1.img,splash2.img,system.img共九个文件。 恢复完毕后就无需再进行Gmail账号的绑定,而且联系人等信息也不要再同步, 完全恢复到备份前的状态。 restore rom from sdcard:从SD卡还原ROM。 会把原先备份好的ROM从SD卡上还原到手机上。 toggle app2sd:触发APP TO SD。开启或关闭APP TO SD这项功能。 当然条件你的SD卡必须要符合APP TO SD的需求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件工程