tag 标签: Android

相关帖子
相关博文
  • 热度 50
    2020-5-23 14:25
    2979 次阅读|
    2 个评论
    为什么Android Go在中国发展不了?体验“真”入门机型NOKIA 1.3
    我觉得中国用户的手机偏好,是被国产手机厂商养刁的,比如对千元机、百元机的配置基本要求,都十分不凡。如今的国产千元机配置,恨不得能够得着旗舰,这好像也是中国特有的一个情况。 这就带来一个十分诡异的事情:高通骁龙的产品线划分,本质上对中国用户是失效的。比如对中国用户而言,骁龙 400 系列、200 系列好像是不存在的;最低配的手机都至少得用上骁龙 600 系列——这在高通原本的定位中,起码也是次旗舰。 这一点其实基本决定了 Android Go 这样的系统,完全不可能在中国市场有什么发展余地:因为这个系统,或者说这个生态面向的是低端入门机型。我国似乎很大程度上是彻底消灭了“真”低端入门智能手机的。真正的入门,不应该是功能机吗? 谷歌 2018 年的 I/O 开发者大会有专门的篇章去谈 Android Go:2017 年,从智能手机的 RAM 来看,全球范围内出货的设备中,约有 25% 仅有 1GB RAM 甚至更少 。按照 Android 设备年度出货量来看,也就是当年 3 个亿的 Android 移动设备 RAM ≤ 1GB。说起来中国国内在售的主流智能手机还有 1GB RAM 的配置吗? 不过实际上,真正让 Android Go 系统无法在中国生根的原因,并不在系统本身。因为所谓的 Android 系统 Go 版,它在操作系统层面和普通版的 Android 好像并没有太多本质性的差别。起码我没有从谷歌的官方介绍中,看出 Android 10 Go edition 与普通 Android 10 有什么大差别,充其量就是去掉了一些 feature,并对资源调用做了更多限制。 Android Go 的本质,用媒体们特别流行的话来说,是一个生态系统。我觉得一般的消费用户其实并不能真正领会,什么东西称得上是个生态。因为在消费用户眼里,生态不就是有一个操作系统,以及一个应用商店吗?应用商店的应用很多,那就是生态很好;应用很少,那就是生态很差。这似乎是个比较暴力的归纳,对开发者而言,应用商店中应用数量的多少,关乎的问题其实非常多样。 恰好前不久收到一台诺基亚 NOKIA 1.3,这是一台采用高通 215 芯片(1.3GHz 四核 Cortex-A53,28nm 工艺,Adreno 308,带骁龙 X5 LTE modem),1GB RAM,16GB eMMC 存储,720p 分辨率 5.7'' 屏幕,可换电池的手机。比较重要的是,它搭载的是 Android 10(Go edition)操作系统。我觉得正好借此机会,来谈谈 Android Go 究竟为什么是个“生态”?以及“生态”就手机这个层面来说,究竟是什么东西?当然了我们只谈手机中更偏应用端的软件生态,不涉及更多扩展,或者上游的软硬件生态。(毕竟我以前一直觉得,说生态,就是骗子) 有关高通 215 与 1GB RAM 开篇还是有必要提一提高通 215 的,注意在命名上是高通 215,而不是骁龙 215(猜测是高通觉得,这种配置不能算是条龙...)。高通 2 系列起码也是用的 64 位 CPU,而且支持双摄。具体到骁龙 215,CPU 配置的是四核 Arm Cortex-A53 核心,最高频率 1.3GHz。 Cortex-A53 在手机用户眼里,应该称作“效率核心”或者“低功耗核心”。现在智能音箱、智能家居的 MCU 上面其实用的还比较多。在 Arm 的定位中,Cortex-A53 是 Arm 的首款 Armv8-A 架构处理器,的确在 64 位数据处理上面向的是“效率”。这种小核心全然为顺序管线,另外 A53 总算也是超标量结构,前端双发射。 Adreno 308 GPU 稍稍提一下,从 NoteBookCheck 的说法来看,这颗 GPU 应该包含 24 个 ALU(作为对比,骁龙 855 的 Adreno 650 的 ALU 数量应该有 384 个 );它的同系列参照对象应该是 2013 年的 Adreno 330(骁龙 800/801 时期的一颗 GPU,与苹果 A7 图形性能类似),不过 Adreno 308 的推出时间应该是 2016 年底。 NoteBookCheck 的测试结果是:Adreno 330 的性能平均是 Adreno 308 的 2.86 倍 。感觉以 Android 的系统图形渲染效率,NOKIA 1.3 过渡动画的掉帧,其实也都仍然存在,但日常系统 app 之类的操作也算是基本流畅的。 更多的其实没什么好说的,用顺序核 + 1GB RAM 在中国跑普通版的 Android 应用,其实是十分吃力的。要知道国人日常所用的微信、淘宝之类 app 是怎样的内存占用规模;以及国内那些 app 能够怎样地疯狂相互唤醒,并快速吃完内存资源。 我自己的感受,在 NOKIA 1.3 上,基本不装什么别的 app,阿里系的 app 统统不装;腾讯系的就只装个 QQ 和微信;另外装一下 Twitter、Whatsapp。在这种情况下,NOKIA 1.3 用微信其实已经比较勉强了,就是启动一下都需要比较久的时间,而且如果涉及其他多任务切换,常常会磨掉最后的那点耐心。对于国内的 Android “生态”而言,这类手机通常可以被认为是“不可用”。 因为使用全套谷歌框架的关系,必须要装的是科学上网用具,我用的是 v2rayNG。在 v2rayNG 挂在后台的情况下,就算只用 Play Store 下载 app,默认情况下,Android 10 Go edition 系统都会随时把 v2rayNG 进程踢掉,导致 Play Store 无法再继续下载。那么,微信这种庞然大物,更不要想还能与其他什么 app 在此等配置下共存。 所以 NOKIA 1.3 是不可能在国内上市的。那么这类手机究竟面向的是怎样一群人呢? “真”入门市场的 Android 生态 我们不能总用自己的逻辑,去以己度人。实际上,由于中国的特殊性,Android 系统在中国发展出的是一整套自己的生态。而这套生态在我们看来是十分理所应当的,比如说你买个手机,起码要把淘宝、支付宝、微信、微博、京东、QQ、网易云音乐、高德地图之类的全装上,很可能还要装个第三方应用市场,否则你还用什么手机? 在国内的消费用户视角,上面这些就是生态,人人依赖的一种生态。它们对于 Android Go 而言,是一种可被宣判死刑的生态。 举个例子,印度有个电商 app 叫 Flipkart。这个 app 在开发的过程中,借用谷歌的开发工具 Android Studio Refractor 和 ProGuard,让 app 尽可能地减少所需资源和代码库;而且还按照谷歌的建议,把所有的图片格式换成 webp,这样图片尺寸缩减 20%。再加上各种优化方法(reduce our memory cache size from 2 screen to 0.5 screen; reduce bitmap pool cache size from 4 screen to 1 screen)。 Flipkart 这个 app 的 apk 尺寸是 17MB。作为对比,同样是电商,淘宝是 118MB。当然这样直接对比不是很科学,毕竟后者规模和架构要大得多了。但这其实很能表明生态塑造的差别。这也造成了 Flipkart 可以在 NOKIA 1.3 手机上基本流畅运行,而淘宝是没戏的。 Android Go 很像是谷歌官方面向开发者的一套指导原则和开发工具。在 2018 年的 Google I/O 开发者大会上,谷歌列举了不少入门市场的价值,大体上比较类似于:你们要让全球更多的人下载你们的 app,那你们就要看看新兴市场容量有多大。 比如前文提到的 2017 年 ≤ 1GB RAM 配置的 Android 设备出货量有 3 亿台;印度 2018 年 ≤ 1GB RAM 的设备出货量 3000-3500 万台,是这个配置的移动设备最大的市场;而美国则是 ≤ 1GB RAM 设备的第二大市场(没想到吧?)。当然,随存储器成本本身的降低,如今应该不是这个数字了。 谷歌花比较大的篇章去向开发者解释,你的 apk 尺寸大小很大程度上关系到用户是否愿意去下载你的 app。统计结果显示:“100MB 大小以下的 app,尺寸每增加 6MB,用户转化率就下降 1%。”当然,不只是手机配置自身,这其实和不同国家地区的流量费用也相关。 另外,很多现有用户的手机总容量就只有 8GB,而其中的 2/3 大约就只有 1GB 的存储可用空间。这也是 Android Go 操作系统(外加指导原则和生态工具)诞生的原因。 有关 Android Go 系统本身 我不想花太多的笔墨去谈 Go 版 Android 系统本身,因为这个系统相较原版的区别并不算特别大——至少以我这种对绝大部分小功能依赖性比较低的人类而言是如此,虽然极有可能 Android Go 去掉了不少系统组件,是一些高级用户需要的。Android Go 全称应该是 Android (Go edition),也就是 Android 系统的 Go 版。它最早始于 Android Oreo (Go edition),随后发展到现如今的 Android 10 (Go edition)。 NOKIA 1.3 设备上,用户层面可感知的主要包括限定后台驻留的进程,部分界面的简化——比如多任务界面简化为一个列表,而不再是常规 Android 系统那样,以活动窗口的方式层叠展示出来;桌面似乎只能设定一屏。可能还有更多功能的阉割,我没有仔细研究;宣传上提到流量节约功能(Data Saver)、包含流量节约特性的 Chrome 之类。 谷歌在 Android 10 Go editon 的宣传页面中提到,“多留出 270MB 的额外内存”——这说的应该是操作系统本身预留的 RAM;“多留出 900MB 额外存储空间”——也是针对存储资源紧缺的入门设备所做的操作系统层面的考量。 这才是“真”入门市场,跟国内的“入门”并不是一个概念。因为这种“入门”的存在,才有了如此拮据的资源需求。(不过随时代发展,Android 10 Go edition 在宣传资料中已经把 ≤ 1GB RAM 改成了 ≤ 2GB RAM,而且似乎我听到的消息是说,预计很快 Android Go 也会将 RAM 需求往上提) Android 10 Go edition 系统自身另外一个比较重要的特点是,搭载了很多谷歌开发的 Go 版 app。包括了 Gallery Go(谷歌相册)、Camera Go(谷歌相机)、Assistant Go(谷歌助手)、Map Go(谷歌地图)、Google Go(谷歌搜索)、File Go(文件管理)等。这些 app 是作为指导 Android Go 生态应用开发的标板存在的。它们可以认为是原版 app 的一个极度优化或者简化版,竭尽一切可能来节约占用的资源,谷歌官方页面提到“更小 50% 应用尺寸”。 至少 NOKIA 1.3 自身搭载的这些谷歌原生 Go 版 app,跑起来都还是基本流畅的。不过实际上这些 Go 版应用还是不得不阉割掉一些功能,比如说 YouTube Go,我自己感觉用起来并不算特别便利,下方导航栏大部分按钮被去除;主要的订阅频道视频更新流还在,但 Explorer、Inbox(通知)、Library(包括你的播放列表、点赞过的视频等)就没有了。 像完整版 Google Photos 的各种高级功能就也别想了,比如照片搜索、人脸识别、照片分类之类;但谷歌似乎也有不停地在为这些 Go 版 app 增加一些力所能及的功能实现,比如前不久谷歌才针对部分 Android Go 机型的 Camera Go 加入了人像模式,似乎也是可以搞背景虚化的,具体的我也没怎么去尝试;Gmail Go 似乎就比较完整,至少我自己没感觉有太多功能缺失;另外就是部分 Go 版应用的暗黑模式还没有做。 Android Go 是这样一个生态 反复在说生态啊,说的这么装逼,不就是个 Android 的特别版系统吗?实际上这个“生态”本质上更多的是说给开发者听的。谷歌有特别在开发者大会上花时间教育开发者,如何针对 Android Go 来优化你的 app,以此实现让你的 app 被全球更多用户使用的目的。 我们来大致看一下,其指导原则大方向是什么样子的。既然起始于 Android Oreo,那么至少要求开发基于 API 26(targetSdkVersion)。针对 app 的开发要求是这样的 : app 在设备上应当占用少于 40MB 容量,游戏则应少于 65MB; 确保 app 的 PSS 低于 50MB,游戏 PPS 低于 150MB(所谓的 PSS,就是 Proportional Set Size,可以理解为应用的 RAM 占用,是 app 似有内存加上应用公共进程部分占用的综合); 避免出现应用不响应、崩溃的情况; 启动 app 时间低于 5 秒。 在具体的执行上,谷歌针对这些开发指导,提供了一些工具和开发建议。比如说谷歌建议使用 Android Vitals 来“理解和解决应用不响应或崩溃的问题”;移除不必要的代码和库,确保添加的库是移动优化版,而不是服务端用的版本;如果增加音频资源,应当使用 mp3 或 aac,而不是 wav; 对于传统 apk 格式,可以使用 Android Studio 中的 Android APK Analyzer 来检查 apk 尺寸,将 apk 与之前的版本比较之类;针对应用不响应、内存不足异常、掉帧之类的问题,应当采用 Firebase、Crashlytics 之类的工具;至于看内存使用情况,通过 ADB shell 使用 meminfo 命令就能检查;应用启动时间应当使用 Firebase Performance Monitoring SDK...... 我自己不做开发,所以没有用过谷歌提到的这些工具,我估计这些工具原本就是谷歌开发生态的组成部分。只不过因为 Android Go 的存在,所以利用现有工具,做出合理的开发指导。这里我也只是列举了谷歌在开发者文档,以及在开发者大会上提到的一部分建议。开发者文档会有更具体的指导。 谷歌自己认为,在很多情况下并不需要以砍掉 feature 为代价来做 app 的优化,就能让 app 跑起来更轻盈,这样也能吸引更多的用户(虽然我觉得不砍 feature 获得全面体验是不可能做到的)。而且,如果不得不让全功能版 app 做到更多的资源占用,或者针对 Go 版 app 不得不移除部分功能,那么依然可以通过谷歌 Play Store 的 Multiple APK 特性,针对上架的同一个应用部署多个 APK,其中针对 Android Go 特别部署一个 APK 版本。 这样一来,针对那些设备配置不错的用户而言,从 Play Store 下载同一个 app 也不需要牺牲更好的体验。 Play Store 扩展 Go 生态 至少在全球市场上,谷歌对 Android 生态的把控还是比较到位的(不像国内,手伸不过来)。面向消费用户,Play Store 即是铺开这个生态的基石;而对开发者来说,Play Store 针对 Go 生态的特别优化,也是吸引他们开发 Go 版 app 的一种方式。 这里我稍微列举一些 Play Store 面向开发者的部分特性。比如说有个特性叫 App Bundle,它实现的是一种模块化操作:在用户下载某个 app 的时候,这个 app 的尺寸会比较小;仅在用户使用 app 时,在必要的时候才进一步下载相应的功能模块(所谓的加载动态功能模块)。这样的话,小尺寸 app 其实可以吸引到更多的人下载(基于前面我们提到的,越小的 app 下载的人其实会越多)。谷歌 2018 年推了一个 Google Play Dynamic Delivery,就是跟 App Bundle 做配合,具体什么机制我也没仔细去看,总之就是模块化、动态化。 另外 Play Store 还有个性化算法机制,针对配置比较差的设备会展示更小的 app;还有比如存储空间快满的时候,会提供删除 app 建议(很久未使用的);也有流量节约功能,比如在 WiFi 环境下,对应用商店最常访问的部分做缓存... 前面提到的 Android Vitals 工具是给开发者理解 app 的稳定性问题的,实际上 Android Vitals Performance 性能也影响到了这个 app 在 Play Store 中的呈现,比如说应用商店里搜索与发现栏目的 app 推广。也就是说,开发者的一款 app 稳定性、优化程度越高,被推荐的机会更多,搜索靠前的机会也更大;Play Store 甚至还引入了一个名为 IsLowRam 的标签,都旨在鼓励开发者优化 app 的性能和稳定性。 实际上,Play Store 起到了承载和推动 Android Go 生态向前发展的作用,虽然我的直觉是估计收效不会太大。但好像作为国人习惯了国内的 Android 生态以后,这个直觉也是错误的。 一方面,谷歌有列举参与 Android Go 生态合作的开发者,虽然我觉得数量也实在是蛮堪忧的,但实际上对于像印度这种入门级用户基数比较大的市场,满足日常社交、网购、聊天之类的需求是够用的,即便在体验上的确是没办法做到全面、畅快。 很多国内手机用户,对于国外 Android 应用生态可能没什么概念。这里我列举一些国际市场主流 app 完整版的 apk 大小: Instagram - 32MB;Whatsapp - 23MB;Twitter - 18MB;Facebook - 49MB;Pinterest - 17MB;Pocket - 10MB;Flipboard - 11MB;LinkedIn - 29MB...... 另外,不少很流行的社交网络,会有一些第三方的客户端,或者官方开发的 Lite 版尺寸就更小了。比如说 Twitter 的很多第三方客户端,大概就 5MB,Twitter Lite 才 1.1MB;Skype Lite 版是 17MB,Messenger Lite 是 9.6MB,Pinterest Lite 则为 1.8MB。当然了,社交软件 Lite 版的功能也比较简单,某些 Lite 版 app 比较类似于网页版套个壳。Lite 版 app 其实也是谷歌给开发者的其中一个指导建议,即面向 Android (Go editon) 开发 lite 版 app。 我也不是要说国外 Android 生态就有多和谐,毕竟这些软件用起来也有体积巨量膨胀的问题,看后续存储管理其实也很重要。不过国内的主流社交、通讯工具就明显比这些 app 的尺寸大得多,占用资源也更多,比如淘宝 107MB,新浪微博 84MB(国际版 33MB),微信 168MB,支付宝 89MB。其实就国内手机市场的情况来看,这些 app 吃的资源也没什么大不了,虽然国产手机还是得想方设法地切断国内 app 生态造成的各种奇葩流氓行为;而且国内这些 app 往往杂糅了更多功能,这和国内市场现状也相关。 这就基本上导致了像 NOKIA 1.3 这样的 Android Go 设备不可能在国内 Android 生态混得下去,用上述任何一个国人看起来只是基本需求的 app 都可能在体验上极度崩溃。但在 Play Store 原生的市场环境下,则要相对更加如鱼得水,NOKIA 1.3 跑 Twitter 就比较正常:虽然也称不上体验很好,但基本可用是能够做到的,也就是“真”入门市场的水准。 去年 9 月份,谷歌在博客上说“过去 18 个月间,超过 500 家厂商发布了超过 1600 款 Android (Go editon) 设备机型,覆盖超过 180 个国家,包括了印度、南非、尼日利亚、巴西和美国。” Android Go 的这套生态能否组建起来,后面我们或许还应该再观察一下,因为实际上入门市场的操作系统不仅有 Android Go 在参与角逐,功能机以及可以算作是半智能机的-比如说 KaiOS 本身都是有力竞争者。 到这里,可以总结一下,其实这篇文章花了比较多的篇幅来谈 Android Go 以及其开发生态究竟是怎么回事。其中的很多东西,就直接决定了,Android Go 完全不适用于中国。第一,Android Go 的生态部署、扩展需要依赖 Play Store;第二,这是谷歌自己提供的开发生态,虽然其实好像也就是现有工具的一些拼凑;第三,国内现有的 Android 应用生态,对于 Android 设备的资源需求,是 Android Go 设备完全没有能力承载的,光是一个微信就让这些手机累得够呛了。 其实最后有个遗留问题,就是为什么国内的入门机型卖得便宜,主要的规格参数却又比国外的那些入门机型出色那么多。当然一方面是 Android Go 设备有下探到 30 美元的(NOKIA 1.3 在其中算是配置不错的了,亚马逊的售价是 99 美元);另一方面相关国内智能手机市场环境和国外的差异,就又是个巨大的话题了,比如运营商、人力/运输成本、网络环境等方方面面,这里就不再多谈了。 参考来源: Build for Android (Go edition): optimize your app for global markets (Google I/O '18) - Android Developers https://www.youtube.com/watch?v=-g7yxxTpF2o&list=PLWz5rJ2EKKc9Gq6FEnSXClhYkWAStbwlC&index=26 The Samsung Galaxy S9 and S9+ Review: Exynos and Snapdragon at 960fps - AnandTech https://www.anandtech.com/show/12520/the-galaxy-s9-review/6 Adreno 308 vs Adreno 330 - NoteBookCheck https://www.notebookcheck.net/Adreno-308-vs-Adreno-330_7906_4683.247598.0.html Android (Go edition) - Android https://www.android.com/versions/go-edition/ Android (Go edition) requirements - Android Developers https://developer.android.com/google-play/guides/android-go-edition How to optimize your app for Android (Go edition) - Google Play https://medium.com/googleplaydev/how-to-optimize-your-app-for-android-go-edition-f0d2bedf9e03 Optimize for devices running Android (Go edition) - Android Developers https://developer.android.com/docs/quality-guidelines/build-for-billions/device-capacity#androidgo More improvements for Android on entry-level phones - The Keyword https://www.blog.google/products/android/more-improvements-android-entry-level-phones/
  • 热度 3
    2019-10-18 15:16
    491 次阅读|
    0 个评论
    By Toradex 胡珊逢 简介 安卓 Android 因其丰富的生态环境,以及快捷的应用开发和分发,获得了广泛的市场关注。 Toradex 最新基于 NXP iMX8 处理器的 Apalis iMX8QM 和 Colibri iMX8QXP 也提供给了 Android 9.0 (Pie) 支持。下面我们将介绍如从源码开始编译安卓。 安卓系统目前并非 Toradex 官方直接提供技术支持的操作系统 , 而由合作伙伴 Kynetics 进行移植和维护。并对用户免费提供源码下载,结合 NXP 的发布情况不定期进行升级维护,甚至是 OTA 更新服务和增值技术支持。 构建 Docker 镜像 安卓编译是一个很复杂的过程,无论是编译安卓本身涉及的配置,还是对编译电脑的性能和网络(需要从 Google 服务器下载资源)。因此我们建议采用高性能 CPU 电脑,空余磁盘空间至少 250GB 。为了减少对编译环境的配置的难度,我们提供了 Docker 镜像,里面集成了编译安卓所需的工具。如果你的 Ubuntu 电脑之前没有安装过 Docker ,可以参考下面命令。 使用 apt 安装: ---------------------------- $ sudo apt-get update $ sudo apt-get install docker-ce ---------------------------- 启动 Docker ---------------------------- $ sudo systemctl enable docker $ sudo systemctl start docker ---------------------------- 建立 docker 用户组 ---------------------------- $ sudo groupadd docker $ sudo usermod -aG docker $USER ---------------------------- 验证 Docker 安装 ---------------------------- $ docker run hello-world ---------------------------- 在完成 Docker 安装后,下载 Dockerfile ,用其编译 Docker 镜像。 ---------------------------- $ docker build -t android-build-env . ---------------------------- 当编译完成后可以看到已经生成了 android-build-env 镜像,接下来我们将在这个 Docker 镜像中完成安卓编译。 ---------------------------- $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE android-build-env latest 9c9ea78b1f48 2 days ago 1.17GB gradle jdk8 c7745382f42e 6 days ago 553MB ---------------------------- 我们也将该镜像上传到了 FTP ,你可以直接下载并导入。 ---------------------------- $ docker load -i android-build.tar ---------------------------- 获取安卓源码 在 Kynetics 网站 注册, 24 小时内会通过审核。然后下载所需的源码包。解压后将其中的 fetch_script.sh 文件和 projects 文件夹复制到 ~/android-build 目录。从 NXP 网站 下载补丁文件 , 位于 BSP, Drivers and Middleware 板块的 P9.0.0_2.0.1_PATCH_ANDROID_SOURCE 文件。同样将其放到 ~/android-build 目录。我们将在该目录里使用 Docker 镜像 android-build-env 编译安卓。 运行 Docker 镜像 执行下面命令,启动 Docker 镜像,并将 ~/android-build 挂载到 Docker 镜像的 /android-build 目录。 ---------------------------- $ cd ~/android-build $ docker run --rm -it -v ${PWD}:/android-build android-build-env bash ---------------------------- 你将会看到一个 Bash 会话终端。 编译安卓 接下来的编译操作都将在 Docker 镜像中完成,即上面打开的 Bash 会话终端。 设置 BUILD_HOME 变量 ---------------------------- # export BUILD_HOME=/android-build ---------------------------- 你将可以看到 BUILD_HOM 目录下的文件。 ---------------------------- # ls -lh $BUILD_HOME -rwxrwxr-x 1 gradle gradle 5.3K Aug 27 12:42 fetch_script.sh -rwxrwxr-x 1 gradle gradle 42M Oct 16 03:06 imx-p9.0.0_2.0.1-ga.tar.gz drwxrwxr-x 5 gradle gradle 4.0K Oct 4 15:20 projects ---------------------------- 配置 git 信息 ---------------------------- # git config --global user.email "you@example.com" # git config --global user.name "Your Name" ---------------------------- 下载 repo 工具 ---------------------------- # mkdir ~/bin ~/bin/repo # chmod a+x ~/bin/repo # export PATH=${PATH}:~/bin ---------------------------- 由于该工具需要从 Google 服务器上下载。你也可以在 Docker 镜像外下载,或者从我们的 FTP 服务器上下载,然后放在 ~/android-build 目录中 , 在 Docke 镜像的 /android-build 目录中看到。 进入编译目录 BUILD_HOME ---------------------------- # source fetch_script.sh apalis_8qm-p9.0.0_2.0.1-snapshot-20190726 ---------------------------- 该过程中将会下载所需编译工具文件,根据你的网速不同,可能需要数个小时,期间会从众多的服务器下载资源,包括 Google 的服务器,请保证网络的可用性。此时还未开始下载 Android 系统自身的源代码。 上述过程结束后,生成以下目录 ---------------------------- # $BUILD_HOME/android_build ---------------------------- 如果下载失败,可以删除 android_build 目录再次尝试。 然后启动最后的编译 ---------------------------- # cd $BUILD_HOME/android_build # source build/envsetup.sh # lunch apalis_8qm-userdebug ---------------------------- 接受 Kynetics EULA 协议,根据编译电脑的 CPU 核数进行编译 ---------------------------- # make -j8 ---------------------------- 这个过程也将消耗数个小时之多。 期间会下载所有涉及的源代码,包括从 https://android.googlesource.com/ 下载大量 Android 源码。如果你的网络带宽(首次会下载 30GB 左右的数据)不容乐观,可以切换国内的镜像站点。 修改 aosp-p9.0.0_2.0.0-ga.xml 文件。该文件可以在 Ubuntu 主机上,或者在 Docker 镜像中修改。 Ubuntu 上位于 ~/android-build/android_build/.repo/manifests , Docker 镜像位于 /android-build/android_build/.repo/manifests 。将其中的 https://android.googlesource.com/ 使用 https://aosp.tuna.tsinghua.edu.cn/ 替换。 ----------------------------
  • 2018-2-19 18:23
    0 个评论
    项目描述: 需要做几千个APP上架到市场 联系扌口扌口:九九二八七五八零九 内容要求: 制作内容由你方自由发挥。只要制作的内容能够审核上架就可以 账号资料这些我们都会提供。 基本要求:审核通过之后我们会通过自己的API控制端调用自己的内容,但是我们的主app直接审核通过不了,如果只简单的 套用网页链接及图片也是过不了的。所以你们是要做自己的内容来应付审核,一般是做原生的混合壳APP,目的是为了通过审 核上架市场。做APP需要的开发者账号和极光账号我们会提供,应用名称必须用我们公司提供的 注意点:必须用appleID写进我们的API开关接口,审核之前测试开关,必须对接极光推送。
  • 热度 2
    2011-10-12 14:32
    623 次阅读|
    0 个评论
     Lauterbach 身处行业领先位置,关于行业发展的未来趋势有何预见呢?在不久的将来,市场上会出现哪些技术呢?我们会在接下来的博客中为您一一介绍。 Android 系统调试 Android 系统调试显然是一个重要的研究课题。市场上不断涌现出各种针对虚拟机(VM)的移动电话硬件架构独立的应用程序。谷歌的 Android 操作系统与Dalvik VM 目前非常流行,而当上层的应用程序,虚拟机和操作系统以及地层的硬件平台共同协同工作时,可能会出现各种复杂的问题,所有层面都有可能是错误原。为了调试和解决这些问题,就需要从 Java 应用程序到Linux硬件驱动程序,所有的软件层都必须做到透明。应一些手机厂商的要求,Lauterbach 于 2010 年中开始开发一款面向 VM Debugging Awareness 的应用程序接口(API)。Android 在这里被用作一个基准平台。目标是为用户提供一个开放的界面,不管是开源程序提供者,还是闭源 VM 虚拟机供应商,都可以使用 TRACE32 进行调试,从而优化他们的产品。 Lauterbach 是各种最新调试技术的全球领先者和行业内的潮流引导者。三十多年来,Lauterbach 一直致力于为嵌入式行业提供最先进的开发工具,并始终保持技术领先地位。这也帮助我们迅速获得全球所有大中型半导体厂商的认可,许多年来,参与新技术开发与实施的各种机构和个人积极需求与 Lauterbach 合作,广泛的合作为Lauterbach 带来源源不断的灵感和开发思路,最终转化为先进的产品。此外,Lauterbach 始终强调以客户为中心,例如,我们的 TRACE32 用户提出的各种优秀的要求和建议,为我们的产品开发带来及大的帮助。在尽可能情况下,我们都会以最快的速度采纳客户提出的合理建议,并将它们体现在下一款调试器产品中。   劳特巴赫工程师精心为您准备在线视频讲座,欢迎观看! http://v.youku.com/v_show/id_XMzExNzcwMTI4.html   您可以登录“劳特巴赫(Lauterbach)中国公司”官方微博 http://weibo.com/lauterbach 官方博客 http://blog.sina.com.cn/lauterbachchina 官方网站 http://www.lauterbach.com/frames.html?country=cn%3fhome_c.html 留言与专家进行互动,为您做免费咨询解答。  
  • 热度 12
    2011-8-16 17:19
    7051 次阅读|
    11 个评论
    经历了2010年一年的干打雷不下雨,2011年的智能手机市场终于“忽如一夜春风来,千树万树梨花开”。   联想乐Phone、魅族M9、oppo、酷派、华为、中兴、阿里云......一时间到处都是oppo Find Me的广告。   智能手机荒终于过去了,终于不用买山寨智能机了,虽然价格还是有点贵。   直到小米手机的出现,不懂行规的放出1999元的价格,这才发现市面上的那些智能机如此坑爹。 我们来对比一下:阿里云手机售价2680;OPPO Find X903试销价2998;魅族MX预计3000左右。   这一招太狠了,直接影响到国内一大帮千元Android手机的生存,而且时间点卡得特别好,选择苹果发布新的低端手机之前。   什么叫破坏性创新?不是1.5G双核也不是1930mHA电池,也不是一周更新的MIUI,更不是跟苹果一样的触摸屏。 1999元的价格就是最大的创新!   猜测小米手机可能遇到的问题:   1、售后难解决,做手机不象是做软件,硬件的售后是一大问题; 2、出货不给力、断货,如果断货不排除出现黄牛炒卖。 3、10月才发售,留了1个半月时间给竞争对手搞小动作,估计不少手机厂商的产品经理要加班了。 4、跳票。这一恶习是魅族开始的,让笔者直接对其丧失任何好感。希望小米不要学! 5、忽悠,那就是实际上做不到承诺的效果或者体验出现问题,让首批购机者成为小白鼠。 小米手机能否给千元Adroid手机带来“鲶鱼效应”?让那些坑爹的手机加速消失? 一切只需要等到10月,答案就能揭晓。
相关资源
  • 所需E币: 0
    时间: 5 天前
    大小: 869.12KB
    上传者: LGWU1995
    基于NXPi.MX8QXPlus的车用AndroidAuto车载系统方案
  • 所需E币: 0
    时间: 2020-9-18 11:48
    大小: 1.71MB
    上传者: czd886
    搭建Android平台和创建HelloWorld
  • 所需E币: 0
    时间: 2020-8-24 21:39
    大小: 2.01MB
    上传者: samewell
    Android开发环境搭建.pdf
  • 所需E币: 2
    时间: 2020-6-17 17:09
    大小: 104.95MB
    上传者: Argent
    智能时代,电子产品丰富多彩,设计方案多多。手头有些硬件、软件方面的设计资料,包括成熟的方案,分享出来仅供大家参考,欢迎下载。
  • 所需E币: 2
    时间: 2020-6-17 17:17
    大小: 68.64MB
    上传者: Argent
    智能时代,电子产品丰富多彩,设计方案多多。手头有些硬件、软件方面的设计资料,包括成熟的方案,分享出来仅供大家参考,欢迎下载。
  • 所需E币: 2
    时间: 2020-6-17 17:36
    大小: 30.45MB
    上传者: Argent
    智能时代,电子产品丰富多彩,设计方案多多。手头有些硬件、软件方面的设计资料,包括成熟的方案,分享出来仅供大家参考,欢迎下载。
  • 所需E币: 1
    时间: 2020-6-11 21:58
    大小: 1.22MB
    上传者: 指的是在下
    基于Android手机手势和语音控制的人机交互系统设计
  • 所需E币: 1
    时间: 2020-6-11 20:26
    大小: 621.74KB
    上传者: 指的是在下
    基于Android平台的多移动终端拼接显示技术
  • 所需E币: 5
    时间: 2020-4-17 13:03
    大小: 115.69MB
    上传者: loromrj
    Android讲义,看的懂、学的会,做的出
  • 所需E币: 5
    时间: 2020-4-7 10:34
    大小: 449.25KB
    上传者: rdg1993
    Android虚拟机第四章Android虚拟机4.1Dalvik虚拟机简介Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。Dalvik的出现是为了躲避Sun公司JavaME的版权以及授权问题,由Google公司自己设计用于Android平台的Java虚拟机.4.2Dalvik虚拟机的主要特征专有的DEX文件格式一个应用中会定义很多类,编译完成后即会有很多相应的CLASS文件,CLASS文件间会有不少冗余的信息;而DEX文件格式会把所有的CLASS文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O操作,也提高了类的查找速度。原来每个类文件中的常量池,在DEX文件中由一个常量池来管理。一个应用,一个虚拟机实例,一个进程每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统实现的。所有Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制。不同的应用在不同的进程空间里运行,加之对不同来源的应用都使用不同的Linux用户来运行,可以最大程度的保护应用的安全……
  • 所需E币: 3
    时间: 2019-12-25 11:37
    大小: 5.21MB
    上传者: givh79_163.com
    Android图书介绍……
  • 所需E币: 5
    时间: 2019-12-25 03:49
    大小: 585.16KB
    上传者: 2iot
    深入浅出Android深入浅出Android1入门........................................................................................................................................................4初探ANDROID......................................................................................................................................42008年末最大的冲击.....................................................................................................................4Android是什么................................................................................................................................4从创意开始...................................................................................................................................……
  • 所需E币: 5
    时间: 2019-12-25 03:49
    大小: 2.96MB
    上传者: quw431979_163.com
    android(10个案例)……
  • 所需E币: 3
    时间: 2019-12-25 03:51
    大小: 14.55MB
    上传者: givh79_163.com
    Android开发范例大全……
  • 所需E币: 5
    时间: 2019-12-25 03:51
    大小: 12.18MB
    上传者: 978461154_qq
    Android开发范例大全……
  • 所需E币: 5
    时间: 2019-12-25 03:49
    大小: 2.95MB
    上传者: 2iot
    Hello,AndroidIntroducingGoogle'sMobileDevelopmentPlatformDownloadatWoweBook.ComWhatreadersaresayingaboutHello,AndroidThisisamostexcellentbook:verywellwritten,easytoread,andfun.Inaddition,anyofAndroid’squirksareexplainedalongwithjusttherightamountofdetailtoensurequalityprogrammingprinciplesarefollowed.AnthonyStevensFounderandCTO,PocketJourneyandTop20WinnerofGoogleAndroidCompetitionEdBurnettecoversanimpressiveamountofgroundinanicelycom-pactbookwhileretainingthepopularPragmaticstyle.Forthemate-rialon2Dand3Dgraphicsalone,thisisworthyofaspotinanyAndroiddeveloper’slibrary.MarkMurphyFounder,CommonsWareIrememberwhenIrststarte……
  • 所需E币: 4
    时间: 2019-12-25 03:49
    大小: 6.31MB
    上传者: givh79_163.com
    android应用框架原理1……
  • 所需E币: 3
    时间: 2019-12-25 03:49
    大小: 6.51MB
    上传者: rdg1993
    超爽android中文教程……
  • 所需E币: 4
    时间: 2019-12-25 03:49
    大小: 630.49KB
    上传者: givh79_163.com
    S3c6410移植android过程ANDROID开发网HTTP://ANDROIDOK.COMS3C6400/6410移植Android内核主要过程:安装lunux环境安装编译工具下载Linuxkernel安装AndroidSDK获得rootfilesystem修改Linuxkernel源码配置Linuxkernel修改rootfilesystem编译Linuxkernel下载kernelImage1.安装linux环境安装UbuntuLinux系统,从网站上下载操作系统安装光盘映像,地址:http://mirror.lupaworld.com/ubuntu/releases/8.04/下载ubuntu-8.04.2-desktop-i386.iso,刻录成光盘安装,安装可以在windows系统下进行,选取有15G空间的硬盘安装,输入用户密码开始安装这一步结束退出光盘重启进入Ubuntu系统,完成余下系统安装。Linux安装完成,进入Ubuntu系统,确保电脑连接Internet,安装一些必要软件。打开终端输入命令框,进行下面的操作:$sudoapt-getinstallssh$sudoapt-getinstallflexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-dev版权所有Androidok.……
  • 所需E币: 0
    时间: 2020-3-13 00:34
    大小: 11.25MB
    上传者: Argon
    第一行代码(ANDROID)高清pdf
广告