仓酷云

标题: IOS制作之Android玩乐系列:修正汇编代码撑持原生高清来电年夜头贴(三)仓酷云 ... [打印本页]

作者: 精灵巫婆    时间: 2015-1-18 11:30
标题: IOS制作之Android玩乐系列:修正汇编代码撑持原生高清来电年夜头贴(三)仓酷云 ...
关于iOS开发的学习打个比方就像把汽车分解最底层的原料有塑料钢铁再用这些底层的工具造出来发动机座椅最后再加上写螺丝胶水等把汽车就拼起来了iOS基本都是英文的资料(接上去进一步细化上一篇的修正,前六节请拜见:《Android玩乐系列:修正汇编代码撑持原生高清来电年夜头贴(二)》)
7、一些遗留成绩的修正
=======

下面是最简版本,只是为了凸起中心功效的完成,但实践留下的成绩仍是很多的。上面逐一道来。

1)呀。是乐成了呢,不外一会儿就被改返来了。
---------
[修正,2012.09.04。办法名写错的,应当是updateInCallBackground(),而不是updateScreen()]
这并非广泛性的成绩,有些拔号面板是有背景的,有些则是背景通明而间接显现桌面的。关于有背景的拔号面板,Phone.apk一般会在InCallScreen.smali中有一个updateInCallBackground()办法,找到它的几处挪用,正文失落便可。大概爽性把updateInCallBackground()改成空函数就行了。

假如找不到updateInCallBackground()函数,则实验找一个setBackgroundResource()这个办法,看那里重绘了mMainFrame的背景便可。

2)下一次德律风呼进的时分,会残留上一个德律风利用的年夜头贴
---------
是的。这应当在此次德律风停止时清算失落。这很复杂,修正InCallScreen.smali,找到
这个办法。然后找到个中return-void这行代码,往上数几行找个中央拔出以下代码便可:
3)好象本来的头像仍是会闪一下?
---------
本来的头像是如许的一个取得历程:
-起首入手下手接听或拔打德律风
-拔号程序显现面板,面板中头像地位显现为“无头像”的icon
-异步倡议挪用,从接洽人数据库中读取头像
-当上述异步伐用前往时,更新显现下面的“无头像”icon为真实的头像图片

以是现实上原生的使用在“显现头像”时城市是两步,这是为了更快地绘制出拨号面板以便用户操纵。而们的代码现实上也是依附这个道理,在上述的历程异步失掉“高清年夜头贴”的数据以后,显现在背景上的。

那末总的来讲,现实上头像总会闪一下。而且在异步读取到头像之前,原生界面上就是会显现一个“无头像”的icon。只管这个历程一般很短,多半时分在你抓过去德律风之前就已闪已往了,可是关于那些正盯着德律风看效果的玩实来讲,这仍是不爽的。

基础下去说,能够正文失落一切修正mPhoto的中央。假如需要,保存一些用于在没有年夜头贴的情形下显现原本的mPhoto的代码是能够的。作为一个示例,一个复杂的中央就是修正showCachedImage()。这起首在CallCard.smail中找到showCachedImage(),然后正文失落个中上面的两行:
这里间接修正showCachedImage(),是由于Phone.apk只为mPhoto成员挪用showCachedImage(),别的的会间接挪用showImage()。

4)界面上年夜头贴显现不全,被一些元素遮住了。如果它们有通明度就行了。
---------
有些时分,界面上的元素是经由过程贴图来绘制的,也就是在资本文件中,它的背景是一张图片。关于指定色彩的背景,比方#xxRRGGBB,我们能够在资本文件中经由过程指定xx值来使它通明化。但假如背景是图,那末在较低的android版本的资本文件中又不撑持alpha属性,那末就只能在源代码中经由过程setAlpha()来使之通明了。

前面这类情形(也包含后面这类设置color代码的情形)能够在CallCard.smali与InCallTouchUi.smali中增加代码来完成,某些情形下,你也大概要改到InCallScreen.smali中的代码的。但总的来讲,都与详细的Phone.apk有关。上面是我在修正Mokee的Phone.apk中利用的代码。注重,这些代码都应当写在onFinishInflate()办法里,这里恰好初始化完界面,并将界面元素联系关系到Java对象的成员上。
这个setPersonInfoStyle()函数会在showCachedBackground()中挪用并传进false值,别的也应当在InCallScreen.smali的delayedCleanupAfterDisconnect()办法中挪用。后一种情形应传进true值,以使得“下一次”来电面板将以缺省情势翻开。


6)全屏!!要真的全屏!!!
---------
实在年夜多半拨号面板是其实不撑持“全屏”的,它一般会留下形态栏。既然我们这里说的是“全屏来电年夜头贴”,那末就加高低面这段代码好了:
然后重编译它,如许在用它设置年夜头贴时,我们能够自在拔取图片巨细。固然,为了失掉“恰好是一个全屏巨细”的年夜头贴,我们也能够借助一下工具。这里激烈保举“快图扫瞄”,它在截取时能够按巨细(像素数)和长宽比来设置截取框。假如你按巨细来设置,好比480x800的屏幕巨细,那末不管你截选图片多年夜,终极城市等比缩放到这个巨细——相称好用!

n)别的之别的
---------
!夸大!!!

1:永久记着:拔出代码的时分,要确认你在利用着符合的存放器!

2:分歧的Phone.apk是纷歧样的,下面的代码次要基于CyanogenMod及其衍生版的ROM,大抵在它们之间都是能够通用的。但要注重细节上的差别,特别(再次夸大)存放器在反汇编代码中是大概分歧的!

3:十分多的ROM衍生自CyanogenMod,包含Lewa、Lezo、DianxinOS、Mokee、Shendu、Norma、Joyos,和部分Miui的定制版。

4:分歧版本ROM中的Phone.apk,多半都是不克不及换在别的ROM顶用的。次要的缘故原由之一,是Phone.apk依附framework-res.apk中的资本来完成了锁屏形态下的接听面板(TouchUi),而不必ROM的framework-res差别较年夜。别的,也多是它们用到的TelephonyProvider.apk版本纷歧致,尝尝换个看,尝尝手气呵。

5:必定要用platform.*的两个key来署名Phone.apk,它请求必需是这个权限的署名。

6:没需要往实验改原厂的Phone.apk,比方sesen原生界面的。由于你拿不到他们公有的platformkeys。因而你签不了名,因而你改了也放不到原生ROM中往。用到其余ROM?你忘了,framework-res还纷歧样呢。

7:写程序嘛,不外是汇编嘛,不怕不怕啦!

很简单OBJCAVFoundation---播放视频相关的库最近正在学习这些算是学iOS开发的一些方法
作者: 兰色精灵    时间: 2015-1-21 08:52
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
作者: 山那边是海    时间: 2015-1-23 21:47
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
作者: 简单生活    时间: 2015-1-30 07:33
在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。
作者: 莫相离    时间: 2015-2-6 08:31
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
作者: 透明    时间: 2015-2-15 20:28
看《iPhone 4与iPad开发基础教程》,跟着一步步来
作者: 小魔女    时间: 2015-2-27 08:26
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
作者: 若相依    时间: 2015-3-12 11:23
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
作者: 金色的骷髅    时间: 2015-3-19 21:19
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
作者: 爱飞    时间: 2015-3-22 21:19
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
作者: 愤怒的大鸟    时间: 2015-3-28 22:05
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
作者: 因胸联盟    时间: 2015-3-29 14:11
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
作者: 仓酷云    时间: 2015-3-31 07:51
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
作者: 精灵巫婆    时间: 2015-3-31 20:57
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,
作者: 第二个灵魂    时间: 2015-4-21 17:15
在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解
作者: admin    时间: 2015-4-26 11:20
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
作者: 乐观    时间: 2015-5-1 18:10
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
作者: 蒙在股里    时间: 2015-6-6 18:48
因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。
作者: 冷月葬花魂    时间: 2015-6-12 00:37
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
作者: 飘飘悠悠    时间: 2015-6-25 22:24
好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2