android程序流程图
❶ 进行Android开发的时候没有测试机适配怎么办,如何进行屏幕适配
Android项目的res目录下一般加上我们自己创建的,会有6个目录,分别是:drawble drawble-ldpi drawble-mdpi drawble-hdpi drawble-xhdpi drawble-xxhdpi, 这里就不包括更为特殊的drawble目录了,(比如drawlbe-land-hdpi, 表示水平方向的高分辨率的图片,这些都目录不管多么长,它们都是按一丁点规律匹配的, 我们的目的是, 从个别中发现规律,从而应用到整体)。
当一个apk运行起来时,Android系统会根据其所运行的手机的屏幕密度去相对应的图片文件夹里找指定名称的图片。 注意, 先去哪个目录里找,完全是根据这个手机的屏幕密度决定的。
其中注意两点:
1, 中等分辨率,即mdpi的屏幕密度是160,他是标准的参考密度。所以计算比例的时候它的比例值是1. 其他屏幕密度的参考比例都是以这个为依据。
2, 默认的drawble目录(一般是自己建的),和mdpi是一样的。将图片放到这个目录和放到drawble-mdpi目录是一样的效果。不过一般习惯性的放一些自定义selector或者点9的图片在这里。
现在我们来看, HTC one V手机的屏幕密度是252ppi, 那距离哪一个最靠近呢, 就是hdpi了。 所以当apk运行在这个手机上时,首先会去这个目录找图片。
下面是用常见的一些类型的手机总结的一个表格:
注意一点: 上面说的对应关系,都是首选目录, 那如果首选目录里面找不到图片呢?
Android图片选择策略
上面说到, 如果屏幕所对应的文件夹没有要找的图片,怎么办。这是很常见的,我们开发项目时一般不会去为每一个级别的屏幕去切一套图片。那样做只会让apk很大。所以一般性的图片我们只切一两个典型密度屏幕的图片。但是apk是有可能会运行在从ldpi到xxhdpi的各种级别的手机上。这个时候就需要根据一定的策略去寻找图片了。
Android系统寻找图片的步骤是这样的:
1, 去屏幕密度对应的目录去找。如果找到就拿来用。
2, 如果没找到,就去比这个密度高一级的目录里面去找,如果找到就拿来用。
3, 如果没找到就继续往上找。以此类推。
4, 如果到了xxhdpi目录还没有找到的话,就会去比自身屏幕密度低一级的目录去找,如果低一级的目录>=hdpi,找到了就拿来用。
5, 如果没找到, 就去mdpi目录去找, 如果找到了,就拿来用。
6, 如果没找到,就去默认的drawble目录里去找, 如果找到了就拿来用。
7 ,如果没找到,再去最低的ldpi目录里去找。如果找到了,就拿来用。
8, 如果没找到, 那就是没找到了, 图片无法显示。(不过一般不会出现这种现象,因为如果每个目录都没有这个图片的话,你是编译不过的)
这里有两点需要注意:
① 首先会去比自己密度高的目录里去找,这是因为因为系统相信,你在密度更高的目录里会放置分辨率更大的图片,这样的话这个图片会被缩小,但同时显示效果不会有损失,但是如果优先去低一级别的目录去找的话, 找到的图片就会被放大,这样的话这个图片就会被拉扯模糊了。
e.g. 同一张图片,你在mdpi和xxhdpi目录各放了一份, 这个应用你现在运行在hdpi的手机上, 那应用会选择哪张图片呢。答案是xxhdpi目录里的。即便hdpi离mdpi更近一点!
②,如果在mdpi里找不到是不会直接去ldpi里找的, 而是先去默认的drawble目录里找,这是drawble目录和drawble-mdpi是一个级别的。
下面用一张流程图来总结:
(注: 以上流程图是我通过做实验总结出来的,如有谬误还望指出。)
Android系统对图片的缩放规则
上文中提到如果在手机对应的目录没有找到图片,就会按照一定的策略去其他目录找,那找到了以后就原图显示么? 非也。
对于放在不同目录下的图片, 系统会按照一定比例对原始的图片进行放大或者缩小, 具体的放大缩小比例可参考下表, 图片所在目录和对应的屏幕密度是相同时图片缩放比例为1,也就是原图显示,而横向的比例表示分别放在该密度手机上运行时图片被缩放的比例。
对原始图片的缩放倍数。
上表几点值得注意的地方:
①, drawable目录和drawable-mdpi目录和dp到px的转换关系是一样的。
②,当你放一个120px*180px的图片到drawable-hdpi目录,如果此应用运行在一个xhdpi的手机上,则这个图片会被拉扯到160px*240px。
③, 最后一行dp->px, 说明了在代码或者布局文件中声明一个dp值, 这个值在不同屏幕密度的手机中会被乘以不同的倍数。 比如你在布局文件中写了一个宽和高分别为120dp和180dp的LinearLayout, 那么当这个应用运行在xhdpi的手机上时(比如上面那个常见手机表中的中兴U985手机),它的实际像素就会被转换为240px*360px。 如果运行在ldpi的手机上,就变成了90px*135px。 但是在这两个手机中显示的区域大小从肉眼看,是一模一样大的。(这点作为后面内容的一个引子,“看起来”一样大,这就是Android的一个神奇的地方)
我们来做个试验
试验材料:
① 一张120px*180px的图片
② 四部手机, 具体参数参考上面的一张表格。三星 Galaxy win pro 3218 (hdpi)、 HTC one V (hdpi)、 中兴U985 (xhdpi)、Google Nexus 7 (xhdpi)。
③ 我在布局文件里声明了3个View, 第一个位于左上角,是一个线性布局,宽和高指定为120dp*180dp(注意是dp哦), 第二个位于右上角,是一个ImageView,内容就是上面这张120px*180px的图片, 第三个位于左下角也是一个线性布局,固定宽高,是120px*180px。
我将这个图片放到一个Android工程里的drawable-hdpi目录
从上面的那种缩放关系表中我们可以知道,图片从hdpi目录中取, 运行在hdpi手机上宽高保持原始值,,运行在xhdpi手机上,宽高会乘以4/3, 也就是说图片会被拉扯变大, 但是图片的实际显示效果,即“视觉大小”怎么样呢。
下面是运行后的效果:
如图: 黑色区域是120dp*180dp的View, 蓝色区域是120px*180px的图片, 灰色区域是120px*120px的View。
1, 可以看到使用dp的View(黑色区域)在不同分辨率,不同屏幕尺寸,不同屏幕密度的手机下,视觉大小看起来是一模一样的。
但是他们的实际像素值是不一样的: 120dp*180dp -> (hdpi) -> 180px*270px, 而120dp*180dp ->(xhdpi)-> 240px*360px。 由于屏幕密度的不同,缩放以后的像素可以显示出一样的视觉大小。
2, 蓝色图片的视觉大小也是一样的, 由于图片放到了hdpi目录下, 所以前两个手使用的是图片的原始像素120px*180px, 而后两个手机对图片进行了放大, 参考上面的屏幕密度缩放关系表, 放大了4/3倍。 我通过对屏幕的截图,测量下来的结果的确是放大了这么多, 分别为160px*240px。 由于屏幕密度的不同,它们显示出来的视觉大小是相同的。
3, 但是使用固定像素值的View就没那么幸运了, 它在hdpi的手机上看起来要比在xhdpi的手机上大一些。 要是在屏幕密度相差更大的手机上看的话, 这个区域的大小会相差很大。 这就是为什么Android推荐使用dp作为View的尺寸,而不是真实像素的原因了。
4, 经过反复试验,(实验结果就不贴图了,很多),得出一个结论,使用哪个目录下的图片(前提是图片只放在某一个目录中),在所有,不管是分辨率还是屏幕尺寸还是屏幕密度,3个参数都在改变的情况下,图片显示的视觉大小都和运行在这个目录对应屏幕密度手机上时的大小是一样的。
UI给工程师切多大图是合适的。
说说我之前走的冤枉路吧。
在之前, 设计师的交互和视觉设计都是基于480*800的界面, 切图的时候会以480*800为基础切一版, 然后在给所切图片的宽和高乘上个4/3,然后在出一版。
比如同一个120*180的图片, 就会出两个版本, 一个是120*180的一个是160*240的。分别放到hdpi目录和xhdpi目录。
吃到的苦头是,UI很累, apk很大。T^T
这番探究下来, 发现直接基于720*1280的视觉稿切一版图片就可以了。 将图片只放到xhdpi目录中,这样系统会在不同密度屏幕的手机中对图片进行合理的缩放, 而之前这个缩放工作竟然是人工完成的!
另: 如果想在xxhdpi的手机上显示的很好, 也可以基于1080P的屏幕设计, 这样的话就兼容所有低密度屏幕的手机, 而且也不会出现图片被拉扯的现象。
❷ 如何根据android代码生成出流程图
你应该是没有点一下,注册机先注册,然后再应用注册机生成响应码,运用注册机前点一下这个文件disable_activation.cmd
❸ 开发一个APP的详细流程有什么
开发一个APP的详细流程有什么
按照时间规定,我们分为以下七个阶段:
1、沟通阶段
仔细做软件致---电---幺伍扒---幺幺叁叁---驷柒驷驷进行用户访谈、需求分析、需求评审。企业的想要做什么样的APP,APP想要实现什么样子的功能,APP整体想要什么样的风格,APP想要适配哪个系统平台,进行系统化的交流与整理之后,交给技术团队去实现的。
4.视觉创意阶段
其中包含:编码规范、页面制作和技术嵌套、系统兼容、单元测试、修复BUG。之后可以用头脑风暴的形式,确立初步的创意方向与定位。接下来将会为用户提供创意表现、页面分格、创意说明等等内容。
5.技术开发阶段
进入开发阶段时,对项目本身进行评估,对研发周期、提测时间、预发布时间点进行初步的判断。然后才是对功能进行分解,进行开发准备,按照编码—系统集成—系统测试—BUG修复—交付的流程进行。
6、验收阶段
程序开发完成之后,要等待专业测试人员进行测试,测试内容包括APP性能、功能、内容等。如果测试无BUG,那么就可以验收了。
7、运营阶段
上线之后,APP即可进行运营。在运营期间,要进行推广与数据分析,即对数据报告与数据跟踪,为后期维护做好准备。
❹ android 开发要画流程图吗
一般是由公司的美工或者设计人员出UI界面设计,作为Android开发人员只需要根据美工的界面设计和切图,编写代码将效果做出来就可以了,不需要画流程图的。
❺ 如何查看android软件的行为
引言
在一个家庭中,老、幼两类群体的安全是家庭成员比较担心的,老人外出购物走丢,初中生上课期间去网吧等事件频繁发生。针对此类安全问题,本文基于Android设计出位置实时监控系统。由于在Android系统手机上开发,可提高便捷性和普及程度,降低成本。
1 系统总体设计
本系统在整体上可以分成两大部分,即被监控端和监控端。被监控端和监控端都是在基于Android操作系统的智能手机上开发实现。该系统内数据传输可采用WiFi、GPRS或者3G网络等通信模式,定位采用的GPS卫星定位的方式。然后利用位置分析数据库进行位置数据分析,在手机上载入电子地图,直观地显示被监控端的位置(若出现在非正常区域则进行提醒监控端)。系统总体的结构图如图1所示。
3.3 程序实现
一是接收发送过来的经纬度信息。本设计为直观显示经纬度信息,在加载地图的同时,显示在“短信内容:”部分。其接收功能实现代码如下:
/**
* 监听收到的短信
*/
private final class SmsObserver extends ContentObserver {
public SmsObserver(Handler handler) {
super(handler);
}
public void onChange(boolean selfChange) {
ContentResolver resolver = getContentResolver();
//查到发出的短信
Uri uri = Uri.parse("content://sms/inbox");
Cursor cursor = resolver.query(uri, new String[] { "address", "body" }, null, null, "_id desc limit 1");
if (cursor.moveToNext()) {
String address = cursor.getString(0);
if (address.equals("此处为被监控对象的手机号码")) {
String body = cursor.getString(1);
smsContent.setText(body);
SearchButtonProcess(body);
}
}
}
二是实现电子地图上的位置显示。仅仅有经纬度信息,监控者无法直观地了解被监控对象的方位。所以在监控端软件上,加载网络地图实现被监控对象的实时监控,运行结果如图8所示。其实现代码如下:
/**
* 对收到的地点发起搜索并显示在地图上
*
* @param v
*/
private void SearchButtonProcess(String smsContent) {
try {
// 逗号分隔过滤得到经纬度字符串
String[] point = smsContent.split(",");
// 获取到的字符串需要转化成long,然后long值需要乘1e6后转化为int
String latitudeStr = point[0];
String longitudeStr = point[1];
GeoPoint ptCenter = new GeoPoint((int)(Float.valueOf(latitudeStr)*1e6),
(int)(Float.valueOf(longitudeStr)*1e6));
// 反Geo搜索
mSearch.reverseGeocode(ptCenter);
} catch (Throwable e) {
Toast.makeText(MainActivity.this, "SearchButtonProcess Error", Toast.LENGTH_LONG).show();
}
4 系统测试结果
如果被监控端和监控端都采用Android手机平台,可以充分利用Android提供的丰富的接口,使系统具有更好的扩展性和实用性。该系统进一步改进还可以实现拍照、截图、标注和查看轨迹等功能。
5 结束语
该系统结构简单、功能明确,软件界面方便美观,设计完成后该系统在自己家庭中进行试用。经过实际生活中的运用证明,该系统可对家中的老人或者孩子进行位置的实时监控,并根据其位置信息家庭成员可以判断是否正常,及时打电话确保安全。此外在本系统的设计基础上,添加LED的显示模块也可以应用到城市公交当中去,为乘客向导系统(PIS,Passenger Information System)的建立提供了一些方法和思路。还可以通过司机的Android操作系统手机,实现远程运输车辆的全程监控,极大地降低成本。
❻ 设计并开发出一个完整的android app 需要掌握哪些知识
你这个问题有些笼统,一个完整的app有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。大体来说,一个app从设计到最终实现需要你懂得以下几个必要方面:
1、前期需求规划与信息、交互设计——你需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材图片需要做点9patch。 这里还需要你懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便你的app能完美适应不同分辨率设备。其中交互设计需要你懂得很多人机操作的技巧经验,掌握Axure等交互工具的使用,UI设计需要你掌握Photoshop和Illustrator等操作。
3、使用ADT之类的开发环境进行app开发,你最基本的也得掌握java语言,熟悉android环境和机制,这里面涉及面广,请根据项目自行学习相关知识。
4、如果不是单机版的app,需要用到服务器,那你还得掌握WebService相关知识和开发语言,常用的有ASP.Net,PHP,JSP等。
5、熟悉并能开发数据库。
6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。
7、熟悉API接口开发,这里包括你自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。
App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的api开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。
❼ 求android UA 程序流程图,函数之间的调用关系,尽量条理一些
MMS中UA用过,一般也就只是定制一下。
❽ android 原生怎么实现流程图的绘制
自View实现的,当然也包括我们后面一步一步引出的自定义控件也不例外,所以说这些View应该都具有相同的绘制流程与机制才能显示到屏幕上(因为他们都具备相同的父类View,可能每个控件的具体绘制逻辑有差异,但是主流程都是一样的)。经过总结发现每一个View的绘制过程都必须经历三个最主要的过程,也就是measure、layout和draw。
既然一个View的绘制主要流程是这三步,那一定有一个开始地方呀,就像一个类从main函数执行一样呀。对于View的绘制开始调运地方这里先给出结论,本文后面会反过来分析原因的,先往下看就行。具体结论如下:
整个View树的绘图流程是在ViewRootImpl类的performTraversals()方法(这个方法巨长)开始的,该函数做的执行过程主要是根据之前设置的状态,判断是否重新计算视图大小(measure)、是否重新放置视图的位置(layout)、以及是否重绘 (draw),
❾ Android开发门禁系统流程图和源码
这个肯定没有
❿ 在做安卓软件开发的时候常常会需要先做出流程图出来,请问下大家,下图的效果是用什么软件做的
你好,一把安卓软件的开发都是比较困难的!要会编程
然后你可以在应用宝里面下载下载这个开发的教程,比较有帮助
应用宝里面的资源很多,除了有大量的APP应用可以免费下载
还有很多软件开发的教程和攻略呢,都是很不错的,免费下载呢
在手机上打开应用宝软件搜索你所需要的教程,找到下载就可以了。
也可以通过手机连接电脑端的应用宝软件来下载的,打开PC端的应用宝软件——手机应用。
可以通过搜索你所需要的游戏教程进行下载呢,都是很方便的。还望采纳