• 漫话:如何给女朋友解释鸿蒙OS是怎样实现跨平台的?
    周末在家休息,女朋友在刷朋友圈,突然她问我:鸿蒙OS回顾2019年8月9日华为开发者大会上,华为消费者业务CEO余承东正式宣布发布自有操作系统鸿蒙,内核为Linux内核、鸿蒙微内核和LiteOS。未来将摆脱Linux内核和LiteOS,只有鸿蒙微内核。鸿蒙(英语:Harmony OS,开发代号Ark)是华为自2012年开发的一款可能兼容Android app的跨平台操作系统。图:鸿蒙OS的四大技术特性1.分布式架构首次用于终端OS,实现跨终端无缝协同体验 2. 确定时延引擎和高性能IPC技术实现系统天生流畅...
  • 如何给女朋友解释鸿蒙OS是怎样实现跨平台的?
    鸿蒙是华为自2012年开发的一款可能兼容Android app的跨平台操作系统。即平台 ≈ 设备所以,华为希望鸿蒙OS可以运行在各种各样的设备上,所以,鸿蒙OS必然需要具备跨平台的能力。而且,鸿蒙想要做的不仅仅是操作系统可以跨平台,更重要的是要让用户和开发者真正的感受到跨平台。Java实现跨平台先来说说Java是如何实现跨平台的。鸿蒙实现跨平台那么,鸿蒙OS的代码编译是怎么样的呢?他又是如何解决跨平台的问题的呢?Android设备是由不同设备上内置的虚拟机进行编译的,所以编译之前就知道这个设备具体是什么了,那么,鸿蒙OS是怎么做的呢?
  • Google开源I/O 2019大会上的Android应用
    Google 近日开源了今年 I/O 大会上用于演示 Android 最新特性的应用 Google I/O Android App。手势操作首先是 Android Q 中完全引入了手势操作,它允许用户直接使用手势操作在不同页面间导航,Google I/O Android App 2019 版本是首批完全支持这一功能的应用。暗黑主题Android Q 引入的另一项新功能是新系统暗黑主题,它适用于 Android 系统 UI 和 Android 设备上运行的应用,目前也集成在 Google I/O Android App 2019 版本中。改进日程UI去年版本的 Google I/O Android App 采用了带有水平滑动选项卡的日程 UI,每个选项卡代表一个会议日。官方表示,使用 Kotlin 更加符合他们对现代 Android 架构的思考,Kotlin 拥有简洁和强大的语法、对安全的可空性和不变性的支持可以使代码更具弹性。
  • 进入迷茫期?或许你应该开阔一下视野
    拿具体的项目来说,不同的项目侧重的知识点也不一样。那么今天就给大家推荐一份由网易云课堂出品的Android高级工程师进阶视频课堂,对于苦苦没有方向的小伙伴们,或许可以开阔你的视野。扫码添加助教小姐姐微信领取免费资料,先到先得~说句实话,现在网上关于Android的免费学习资源很多,基本上都是一些入门的、基础的、甚至是落后的技术点讲解内容。很少有大厂大佬录制的Android课程,讲解如此深入浅出,所讲内容全是当下互联网公司项目里用到的实战技术技巧,关键还是免费的,我觉得很值。
  • 进入迷茫期?或许你应该开阔一下视野
    拿具体的项目来说,不同的项目侧重的知识点也不一样。那么今天就给大家推荐一份由网易云课堂出品的Android高级工程师进阶视频课堂,对于苦苦没有方向的小伙伴们,或许可以开阔你的视野。扫码添加助教小姐姐微信领取免费资料,先到先得~说句实话,现在网上关于Android的免费学习资源很多,基本上都是一些入门的、基础的、甚至是落后的技术点讲解内容。很少有大厂大佬录制的Android课程,讲解如此深入浅出,所讲内容全是当下互联网公司项目里用到的实战技术技巧,关键还是免费的,我觉得很值。
  • 鸿蒙霸榜 GitHub,从最初的 Plan B 到“取代 Android”?
    与此同时,一个非官方的 GitHub 项目悄悄兴起,在技术圈快速发酵并一举摘得了桂冠。厉兵秣马终有时,千呼万唤的鸿蒙系统终于在 8 月 9 日正式亮相。或许,替代 Android 并非可望不可即。鸿蒙一经发布,各种报道便纷至沓来,引来了国内外开发者的热烈讨论,其中之一受关注的就是登顶 GitHub 的“Awesome-HarmonyOS”项目。注册仅仅九天,该项目已收获 Star 8000+,并连续登顶 GitHub 日榜。2019年5 月 24 日,注册公告日期是 2019 年 5 月 14 日,专用权限期是从 2019 年 5 月 14 日到 2029 年 5 月 13 日。2019年8 月 9 日,华为官方发布“鸿蒙操作系统”,并且宣布“鸿蒙操作系统”将开源。
  • Android开发必备的“80”个开源库,分类整理!
    utm_source=tuicool&utm_medium=referral从零开始的 Android 新项目http://blog.zhaiyifan.cn/2016/03/14/android-new-project-from-0-p1/你需要知道的 Android 拍照适配方案https://www.jianshu.com/p/f269bcda335f你所不知道的Android Studio调试技巧https://www.jianshu.com/p/011eb88f4e0d一份系统、全面的安卓进阶学习指南https://github.com/iwannabetop/Awesome-Android-Learning-Guide性能优化Trinea - 性能优化系列总篇http://www.trinea.cn/android/performance/高建武 - 性能优化篇http://androidperformance.com/2015/04/11/AndroidMemory-Usage-Of-MAT.htmlAndroid 性能优化篇https://www.jianshu.com/p/388c693c1b58胡凯 - Android 性能优化典范http://hukai.me/android-performance-patterns/Android 内存泄漏总结https://www.jianshu.com/p/cdc6d2e664f1避免 Android 中 Context 引起的内存泄露https://zhuanlan.zhihu.com/p/24974982?utm_source=weibo&utm_medium=socialApk 瘦身的几个技巧https://www.jianshu.com/p/320eac29391aAndroid 性能优化典范之多线程篇http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1022&extra=page%3D1%26filter%3Dauthor%26orderby%3DdatelineAndroid 应用性能调优的技术点http://zhuanlan.zhihu.com/kaede/20326073Android 客户端性能优化http://blog.tingyun.com/web/article/detail/155美团 WebView性能、体验分析与优化https://tech.meituan.com/WebViewPerf.htmlMVP/MVVM架构相关MVC,MVP 和 MVVM 的图示http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html不容错过,最全的 Android 架构合集https://www.jianshu.com/p/1f21e1d375aaAndroid MVP 详解https://www.jianshu.com/p/0590f530c617Google 官方 MVP 案例 todoAPP 解析http://www.judymax.com/archives/1141?
  • 9102年了,还不知道Android为什么卡?
    0导读最近华为方舟编译器要开源了,笔者去看了下发布会PPT,发现作为一名Android开发者,PPT中所介绍的知识点我居然不能完全看懂???本文将用通俗的语言从底层介绍Android卡顿的历史原因和谷歌与之斗争的过程。2造成卡顿的三大因素今年最新的Android版本已经是10了,其实在这两年关于Android手机卡顿的声音已经慢慢低了下去,取而代之的是流畅如iOS之类的声音。但是诸如超过iOS的话,还比较少,其实是因为Android有卡顿有三大历史原因。接下来就是伟大的Android虚拟机进化之路!上文中所说的从字节码解释成机器码的过程在Java虚拟机中,在Android平台中虚拟机指的就是这个DVM。
  • 成功混入阿里内部偷师Android规范文档
    作者:YouCil链接:https://juejin.im/post/5d098f956fb9a07eb051c51e前言一份合格的代码不应只满足于实现功能, 更应该遵循良好的规范. 遵循良好的代码规范有利于:提升程序稳定性, 减少代码隐患, 降低故障率;增强可扩展性, 大幅提高维护效率;统一标准, 提升多人协作效率;方便新人快速上手, 在项目组人员发生变动时保证项目进度;这里梳理一下Android开发过程中需要注意的一些地方, 包括多个部分, 另外根据约束力强弱分为两类:强制: 如果不遵守会导致代码严重混
  • 看一看Facebook工程师是怎么评价《第一行代码》的
    今年年初,我参加了 Facebook 的面试,并且顺利地通过成为了一名 Facebook 的软件工程师。而面试 Facebook 时,我的 Android 主要备考资料就是《第一行代码——Android》,事实证明这本书派上了很大的用场。其中 Facebook有一道题目我印象非常深刻,当时我把《第一行代码——Android》中总结的知识点都说了出来,面试官大喜,说这是他面过的所有人当中回答得最好的!听说《第一行代码——Android》要推出第 3 版,我也非常期待。但是Facebook要求,如果员工对外发布与Facebook相关的信息时,需要通过公司的审核才行。
  • Android Studio 3.5: 稳步推进 Project Marble 计划
    我们把这项工作命名为 Projetc Marble 计划。最后,我们还在 Project Marble 计划期间,修复了 Android Studio 3.5 中的多个错误。尽管 Android Studio 3.5 稳定版的发布对我们来说已经是一个里程碑,象征着团队为提升 IDE 质量所付出的艰苦努力,但是我们的质量调优工作并不会止步于 Project Marble 计划。我们希望每一位下载并使用 Android Studio 3.5 的开发者都可以享受到 Project Marble 计划所带来的裨益,借助高质量产品和全新架构,显著提升 Android 应用的开发效率。在 Android Studio 3.5 中,一旦系统监测到这个情况,Studio 将通过弹窗引导您进行最优设置。
  • Android学习第一书
    《第一行代码——Android》第 2 版出版以后,我第一时间就在国内购买了,并托朋友带了过来,也算是海淘国货了。可以说《第一行代码——Android》完全成了我的 Android 复习资料。而《第一行代码——Android》是一本有细节同时又高屋建瓴的一本书。接下来分别对 Android 的四大组件进行了较为深入的讨论。听说《第一行代码——Android》要推出第 3 版,我也非常期待。
  • Flutter Platform Channel 使用与源码分析
    奇技指南本文是Flutter系列第三篇文章,将为大家介绍Flutter与Native通信使用及原理分析。01为什么要有 PlatformChannel1、如果 Flutter 要获取设备的电量信息怎么办?由于 Flutter 特点如下:Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.1、Flutter 是一个跨平台的 UI 库,专注于构建高效的 UI。基于以上两点,目前 Flutter 如果要和平台相关的部分通信需要有一个通道即 PlatformChannel。02架构图03PlatformChannel类型BasicMessageChannel:用于数据传递。platform 和 dart 可互相传递数据MethodChannel:用于传递方法调用。在 Android 端定一个 MethodChannel 名字和 Dart 端保持一致。
  • 实现八大行星绕太阳3D旋转效果,这波操作不来喊个666?
    对于贾跃亭的债务问题,FF声明称,贾跃亭过去两年来通过多种方式已陆续偿还超过30亿美金的国内债务,还债信托基金的设立就是为了尽快彻底解决债务问题。史蒂芬诺夫斯基的博客地址:https://www.jianshu.com/u/46056ddc3d3d/ 本文目的 /巩固/练习 自定义View分析解决问题的思路好久没写View了,最近恰巧遇到一个八大行星绕太阳旋转的假3D效果,写完之后感觉效果还不错。现在的结论是,只需要把图1的所有行星的y 坐标 * cos60°,就能达到效果了。
  • Google:就算Linux自带多进程通信,我也要采用Binder机制!
    所以小伙伴们需要格外的注意求职者:应该从 linux自带的进程通信说起。仅仅从以上两点,各有优劣,还不足以支撑google去采用binder的IPC机制,那么更重要的原因是: 从安全的角度:传统Linux IPC的接收方无法获得对方进程可靠的UID/PID,从而无法鉴别对方身份;而Android作为一个开放的开源体系,拥有非常多的开发平台,App来源甚广,因此手机的安全显得额外重要;对于普通用户,绝不希望从App商店下载偷窥隐射数据、后台造成手机耗电等等问题,传统Linux IPC无任何保护措施,完全由上层协议来确保。从安全角度,Binder的安全性更高。话题扯远了,继续说Binder。
  • 自动识别Android不合理的内存分配
    写在前面Android开发中我们常常会遇到不合理的内存分配导致的问题,或是频繁GC,或是OOM。按照常规的套路我们需要打开Android Studio录制内存分配或者dump内存,然后人工分析,逐个排查问题所在。如果可以自动识别出不合理的Java对象分配,这样繁琐的工作将会变得简单。让录制对象分配自动化1. 模仿Android Studio是开源的,因此我们很容易在它的源码里找到一些功能的实现。
  • 程序员踩坑之旅:将 75000 行 iOS 原生代码迁移到 Flutter!
    后来,Flutter问世了。六个月后,我发布了Google Open Beta,却没有使用原生代码。最终我获得了35,000行Dart代码。此外,还有3000行Objective-C/Swift代码负责处理HealthKit等iOS特定的逻辑,以及500行Java图像处理代码。导入完成后,Flutter应用的代码行数只有iOS原生应用的一半。不幸的是,到目前为止,我们还没有适用于AWS的官方Flutter SDK,而与AWS相关的插件也非常少。在比较iOS原生版的应用与Flutter版时,我们的测试人员并未在手机上看到明显的性能下降,除了iPhone 6。
  • Hello Flutter,船长初体验
    菩提本无树, 程序亦非猿时不时8:38推送优质文章,觉得有用,置顶加星标Hi,船员们好,我是初次体验了 Flutter 的船长。前几天 Google发布了flutter.cn 以及 release了 Flutter 1.9 ,今天船长没忍住,尝试了下 Flutter。分享下我跑 Hello Flutter 的经历吧,以及一些浅薄的体验。export PATH="$PATH:`pwd`/flutter/bin" source ~/.zshrc #替换你自己的 shell 配置文件路径Flutter 依赖一些其他的工具,可以运行 flutter doctor 命令来查看依赖是否完善。] Android Studio Flutter plugin not installed; this adds Flutter specific functionality. Dart plugin not installed; this adds Dart specific functionality.[] VS Code [!] This is a test version we'd love you to try.For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.8.0.beta.2Setup completed问题 3: Flutter plugin not installed; this adds Flutter specific functionality. Dart plugin not installed; this adds Dart specific functionality.解法,在 AS 安装一下 Flutter 插件。
  • GitHub:这个项目,让Android开发像流水线高效职责分离架构
    原文链接:http://www.apkbus.com/blog-864937-81058.html前言GitHub Java项目推荐|让 Android 开发可以像流水线一样高效的职责分离架构 不同于 MVP 的配置解耦也不能和 MVVM 的关注点分离同日而语VIABUS 是世界范围内首个明确提出通过职责分离来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念项目分析仓库名称:android-viabus-architecture标星:356 标星趋势关注:15拷贝:55贡献人数:2仓库大小:2 MB主要开发语言:Java语言分布:Java:100.00%代码提交周期分布:项目概述什么是 ViaBusViaBus 是一款响应式架构,借助静态接口转发数据的请求和响应,实现 UI、业务的完全解耦。为什么选择 ViaBus1分钟即可掌握,ViaBus 的结构与使用方式。