随笔分类 -  App开发

摘要:(十)PMS及App安装过程 PMS,全称PackageManagerService,是用来获取Apk包的信息的。 在前面分析四大组件与AMS通信的时候,我们介绍过,AMS总是会使用PMS加载包的信息,将其封装在LoadedApk这个类对象中,然后我们就可以从中取出在manifest声明的四大组件信 阅读全文
posted @ 2017-06-02 09:48 包建强 阅读(4130) 评论(2) 推荐(5) 编辑
摘要:这个系列一共8篇文章,这里是第7篇,我们讲ContentProvider。 阅读全文
posted @ 2017-05-31 10:12 包建强 阅读(4227) 评论(2) 推荐(3) 编辑
摘要:这个系列一共8篇文章,这里是第6篇,我们讲BroadcastReceiver。 阅读全文
posted @ 2017-05-28 10:08 包建强 阅读(3362) 评论(3) 推荐(1) 编辑
摘要:(十)Service Service有两套流程,一套是启动流程,另一套是绑定流程。我们做App开发的同学都应该知道。 1)在新进程启动Service 我们先看Service启动过程,假设要启动的Service是在一个新的进程中,分为5个阶段: 1)App向AMS发送一个启动Service的消息。 2 阅读全文
posted @ 2017-05-26 10:44 包建强 阅读(4229) 评论(4) 推荐(1) 编辑
摘要:(八)App内部的页面跳转 在介绍完App的启动流程后,我们发现,其实就是启动一个App的首页。 接下来我们看App内部页面的跳转。 从ActivityA跳转到ActivityB,其实可以把ActivityA看作是Launcher,那么这个跳转过程,和App的启动过程就很像了。 有了前面的分析基础, 阅读全文
posted @ 2017-05-23 09:52 包建强 阅读(4682) 评论(0) 推荐(1) 编辑
摘要:书接上文,App启动一共有七个阶段,上篇文章篇幅所限,我们只看了第一阶段,接下来讲剩余的六个阶段,仍然是拿斗鱼App举例子。 阅读全文
posted @ 2017-05-22 09:56 包建强 阅读(5976) 评论(1) 推荐(1) 编辑
摘要:本文讲解一个App启动的过程。我们尽量不贴代码多画图,用浅显易懂的语言,让大家理解Activity与AMS通信的过程。 阅读全文
posted @ 2017-05-21 10:17 包建强 阅读(11171) 评论(2) 推荐(4) 编辑
摘要:这是一组写给App开发人员看的系列文章,先后介绍了Binder、AIDL、四大组件、AMS、PMS等核心思想,以及App安装流程、App启动流程。因为面向的读者是App开发人员,所以尽量不贴底层的代码,用浅显易懂的语言,为读者展现一个全新的世界。 阅读全文
posted @ 2017-05-19 10:30 包建强 阅读(29475) 评论(7) 推荐(8) 编辑
摘要:对我的文章和培训课程感兴趣的可以加我微信16230091进行关注。 —————————————————————————————————— 今天聊聊我沉淀比较久的一门技术,设计模式。这里是第一篇,算是概论,讲一下我这些年来学习设计模式的心路历程。 (一) 设计模式和数据结构,在日常开发工作中,无论是A 阅读全文
posted @ 2017-05-01 14:41 包建强 阅读(1361) 评论(0) 推荐(0) 编辑
摘要:1)多线程相关dispatch_afterdispatch_asyncdispatch_syncdispatch_get_main_queuedispatch_get_global_queuedispatch_time2)__bridge,涉及到CF与OC的转换objc_getAssociatedO... 阅读全文
posted @ 2016-01-07 19:05 包建强 阅读(1268) 评论(0) 推荐(0) 编辑
摘要:  古者富贵而名灭,不可胜记,唯倜傥非常之人称焉。故西伯拘而演《周易》,屈原放逐,乃赋《离骚》。文人雅士一次次的谱写着千古绝唱,而我亦不能免俗,也要附庸风雅,写一部前不见古人、后不见来者的经典之作。 于是,历时一年,呕心沥血,结合自身3年来从事App领域的一线实战经验,写下这洋洋洒洒三百多页十几万字。初稿完成后,杜勇帮我介绍了机械工业出版社的吴怡老师,促成了这本书的出版。临近出版之际,约到了周鸿祎和刘江、屠毅敏等人的序言,为本书增色不少。 阅读全文
posted @ 2015-10-26 22:03 包建强 阅读(15525) 评论(49) 推荐(14) 编辑
摘要:iOS开发人员已经习惯于将JSON转换为字典或者数组来进行操作了,接下来我要做的事情,可能匪夷所思,但是,对WP和Android开发人员而言,他们更倾向于将JSON转换为实体对象进行操作。我所设计的客户端框架,三个平台之间互相取长补短,保持统一的思想,而其中最重要的一环就是,面向对象的编程方式。书接上文,我在异步调用完MobileAPI并成功获取到JSON后,仅仅将其转换为jsonValue,如下所示:后续要做的事情,就是把jsonValue转换为实体对象了。首先,要说一下JSON的格式。MobileAPI返回的JSON字符串有几种格式:1)单一实体:a)简单属性:{"userNam 阅读全文
posted @ 2013-09-10 11:26 包建强 阅读(6015) 评论(7) 推荐(5) 编辑
摘要:这一节讲如何发起网络请求。iOS用于调用MobileAPI的第三方组件很多,我们这里采用的是以下组件:1)ASIHTTPRequest,用于请求MobileAPI:http://allseeing-i.com/ASIHTTPRequest/2)SBJson,2.3版本,用于解析JSON:http://stig.github.com/json-framework/由于我们在MyLib中引用了SBJson,它里面有一个Category名为NSString+SBJSON,为了能使用它,请在MyLib和MyApp项目中的Other Linker Falgs设为-all_load。这一节内容非常芜杂,我 阅读全文
posted @ 2013-09-05 21:29 包建强 阅读(3171) 评论(4) 推荐(2) 编辑
摘要:首先要确定一点,我们的App,要基于XIB文件进行编程,而不是在每个相应的ViewController里面去手动创建页面的每个控件。这样做的好处是,将页面布局与业务逻辑彻底隔离。于是我们可以把xib的绘制工作交给美工人员,而iOS程序员,主要关心的是业务逻辑。有人会怀疑过多的xib会导致App体积变大,我曾经有专门看过ipa文件解压后的文件列表,我发现每个xib也就2k大小,而一个App最多也就七八十个xib,那么就是说共计150k大小的样子,由于是xml文本文件,所以压缩后更小。而相比较下,占用App体积最多的,往往是开机画面图,引导图这些东西,如果真的想要App瘦身,应该在图片上进行优化, 阅读全文
posted @ 2013-09-05 11:06 包建强 阅读(2611) 评论(2) 推荐(0) 编辑
摘要:本文代码:YoungHeart-Chapter-03.zip没有基类的App都不是好App。因为iOS使用的是mvc模式的开发模式,所以,业务逻辑基本都在每个页面相应的ViewController中。这些页面有很多相同的逻辑,所以,我们有必要设计一个BaseViewController基类,将这部分共有逻辑抽象到基类中。具体是哪些相同的逻辑呢?1)重新规划页面的生命周期——第4篇文章会专门介绍.2)iOS处理内存警告——在讲到内存优化的时候,会介绍。3)作为跳转器的目标页,接收传递来的参数——在讲到导航器的时候,会介绍。4)页面初始化时,需要清除控件上的假数据——在讲到UI框架设计的时候,会介 阅读全文
posted @ 2013-09-02 12:14 包建强 阅读(2779) 评论(1) 推荐(2) 编辑
摘要:本文附带源码:YoungHeart-Chapter-02.zip在设计任何一个框架之前,都应规划好项目结构。假定Git作为我们的项目管理工具。我们要建立两个仓库,一个用于存放我们的框架,另一个用于存放我们的项目,后者引用前者。对于iOS而已,大部分开发者已经习惯于就一个project,所有的功能、页面都做在上面,倒也没错。然而我现在要做的是,要让我所设计的框架,脱离于项目而存在,这样,明天我也许会做另一个项目,但是所使用的框架确是同一个。为此,iOS需要用到workspace的概念。它相当于.NET中的solution文件,在.NET中,我们可以在一个solution中添加多个project, 阅读全文
posted @ 2013-09-02 10:24 包建强 阅读(6836) 评论(9) 推荐(6) 编辑
摘要:1)兼容iOS4.32)iOS7的适配3)WP的墓碑4) 点击区域太小的问题5)评分控件6)倒计时7)内存优化8) iOS内存警告9)iOS扫描二维码 阅读全文
posted @ 2013-09-01 00:07 包建强 阅读(1166) 评论(0) 推荐(1) 编辑
摘要:接下来要说的一个系列,是一个完整的App应用所需要的企业级框架设计,是我这2年来在无线客户端这个领域摸爬滚打的,总结沉淀的心得体会,中途吃了很多亏,走过很多弯路,加了很多班,一次又一次的重构,不断的学习,才知道,哦,原来iOS要这么做,原来Android要那么做,然后回过头来再看看我最熟悉的WP,哦,原来WP还可以做的更好。2年间,我还接手了MobileAPI的维护,从而让客户端和服务器端的配合更顺畅,中途还发明了几个好用的工具,从服务器端到客户端这条路我打通了。再然后,我还碰了碰tcp+protobuf,WP8的项目就是基于此开发的。此外,我还打通了另一条路,那就是前端设计人员和客户端开发人 阅读全文
posted @ 2013-09-01 00:01 包建强 阅读(10665) 评论(26) 推荐(31) 编辑