android新技术

Android开发高手课NOTE

半腔热情 提交于 2019-12-03 04:28:02
最近学习了极客时间的《Android开发高手课》很有收获,记录总结一下。 欢迎学习老师的专栏: Android开发高手课 内存优化 卡顿的原因 频繁 GC 造成卡顿、物理内存不足时系统会触发 low memory killer 机制,系统负载过高是造成卡顿的俩个原因。 除了频繁 GC 造成卡顿之外,物理内存不足时系统会触发 low memory killer 机制,系统负载过高是造成卡顿的另外一个原因。“用时分配,及时释放” Android 3.0~Android 7.0 将 Bitmap 对象和像素数据统一放到 Java 堆中,这样就算我们不调用 recycle,Bitmap 内存也会随着对象一起被回收。不过 Bitmap 是内存消耗的大户,把它的内存放到 Java 堆中似乎不是那么美妙。即使是最新的华为 Mate 20,最大的 Java 堆限制也才到 512MB,可能我的物理内存还有 5GB,但是应用还是会因为 Java 堆内存不足导致 OOM。Bitmap 放到 Java 堆的另外一个问题会引起大量的 GC,对系统内存也没有完全利用起来。 将 Bitmap 内存放到 Native 中,也可以做到和对象一起快速释放,同时 GC 的时候也能考虑这些内存防止被滥用。NativeAllocationRegistry 可以一次满足你这三个要求,Android 8.0

2018 Google IO

匿名 (未验证) 提交于 2019-12-03 00:32:02
原文 前言 美国当地时间5月8日,2018年 Google I/O开发者大会在美国加州山景城拉开帷幕。 这是全球5月份最盛名的一次开发者大会,即使你不是一名专业的技术人员,你也可以从中获取不少前沿性的内容――当然,它更是程序开发者们的特殊节日,在I/O大会开始之前,相关网站就已经浓墨重彩开始了宣传(作为Android开发者,笔者惊奇地发现Android Developers官方网站也迎来了全新的改变)。 在本届大会上,AI(人工智能)成为贯穿全场的主题。谷歌不仅发布了新一代为机器学习定制的芯片TPU(张量处理器)、结合了AI技术的 Android P ,还升级了不少AI应用 ――不难发现,Google 把开发重心更多放到了AI上面,除此之外,移动端技术和 前端技术 的发展也在Google的重点关注之中,这之后,谷歌还谈到了在自动驾驶领域和TPU芯片研发的新进展。 作为一个Android开发者,我们应该做到的是关注最新的技术动态和风向,我尝试花了一些时间总结了本次大会的 干货列表,并简单做了一下总结,希望对大家能有所帮助。 本文的目录如下: AI的演示――Google Assistant Android P Android Jetpack Kotlin的上位 Android Wear Android Things ARCore Instant app 总结 一.AI的演示―

跨平台技术演进及Flutter未来

纵饮孤独 提交于 2019-12-02 14:38:21
一、移动跨平台技术演进 1. 引言 移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成为互联网领域最大的流量分发入口,一大批互联网公司正是在这大趋势下崛起。 2. 为什么需要跨平台技术 伴随着移动互联网的高速发展,公司间竞争越来越激烈,如何将好想法快速落地、快速试错,成为备受关注的问题。提升研发效率、缩短研发周期,保障产品快速试错并能快速迭代新功能,让新产品新功能以最快的速度同时抵达 Android、iOS 等多端用户。 众所周知,Android 应用采用 Java 或 Kotlin 编写,iOS 应用采用 Objective-C 或 Swift 编写,Web 端采用 HTML /CSS/JavaScript 编写。当需要开发支持多端的应用,每一端都需要独立研发、测试,一直到上线,以及后续的维护工作,工作量成倍增涨,势必延长研发周期。 为了解决多端独立开发的问题,跨平台技术便应运而生,各大互联网公司为此都投入大量人力,于是出现了各种跨平台技术框架, 面对移动领域的跨平台技术方案的层出不穷,又该如何做技术选型呢? 3. 移动端技术选型 作为移动端的跨端技术方案,所关注无外乎以下这4个方面:研发效率、动态性、多端一致性、性能体验。 研发效率:最大化代码复用

跨平台技术演进及Flutter未来

≯℡__Kan透↙ 提交于 2019-12-02 11:21:26
引言 移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成为互联网领域最大的流量分发入口,一大批互联网公司正是在这大趋势下崛起。 为什么需要跨平台技术 伴随着移动互联网的高速发展,公司间竞争越来越激烈,如何将好想法快速落地、快速试错,成为备受关注的问题。提升研发效率、缩短研发周期,保障产品快速试错并能快速迭代新功能,让新产品新功能以最快的速度同时抵达 Android、iOS 等多端用户。 众所周知,Android 应用采用 Java 或 Kotlin 编写,iOS 应用采用 Objective-C 或 Swift 编写,Web 端采用 HTML /CSS/JavaScript 编写。当需要开发支持多端的应用,每一端都需要独立研发、测试,一直到上线,以及后续的维护工作,工作量成倍增涨,势必延长研发周期。 为了解决多端独立开发的问题,跨平台技术便应运而生,各大互联网公司为此都投入大量人力,于是出现了各种跨平台技术框架,面对移动领域的跨平台技术方案的层出不穷,又该如何做技术选型呢? 移动端技术选型 作为移动端的跨端技术方案,所关注无外乎以下这4个方面:研发效率、动态性、多端一致性、性能体验。 研发效率:最大化代码复用,减少多端差异的适配工作量,降低开发成本,专注业务开发,实现

2015年Android开发新技术

戏子无情 提交于 2019-12-02 09:01:12
开发工具 Android Studio : Google 官方放弃 Eclipse 和Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表 Recent Changes,一定会让你的写代码的生活更加美好。 编程语言 Kotlin: 作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为什么不来试试? 使用Kotlin进行 Android开发 。 React Native: 跨平台一直是程序员的梦想,而且移动应用的跨平台解决方案也很多,因为 Facebook 的参与和力推,让这个解决方案带上了光环。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,听说 Android 的 SDK 也马上会到来,React Native。 Sky: 与 React

日新月异的Android新技术

喜你入骨 提交于 2019-12-01 05:23:01
学习Android技术开发已经很久啦,感觉Android技术开发太快,几乎每年 都有很多新东西出现,想要覆盖所有新东西感觉也不太可能,我这里主要说一下主要的 Android 的主要新技术发展,其实了解 Android 的发展趋势,可能对Android程序开发者有帮助。 介绍下Android开发工具 Android Studio : Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表 Recent Changes ,一定会让你的写代码的生活更加美好。 编程“语言” Kotlin : 作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为什么不来试试? 使用Kotlin进行Android开发 。 React Native : 跨平台一直是程序员的梦想

LeAndroid招聘汇总

北城以北 提交于 2019-11-28 15:14:44
招聘Android通讯开发经理 工作地点:北京-朝阳区 工作经验:3-5年 薪资范围: ¥ 面议 学历要求:本科以上 职责描述 1.负责设计指导开发和优化Android 网络通讯 相关功能; 2.负责设计指导开发和优化Android网络通讯相关设置功能; 任职资格 1.本科以上学历,计算机相关专业; 2.精通Java/C++等编程语言; 3.有Android开发 4年以上 工作经验; 4.有 WIFI、Bluetooth、NFC、Telephony 等模块相关工作经验; 5.有Android系统设置开发经验; 6.熟悉 Bluetooth、NFC、移动网络等相关协议 ; 7.有跨手机平台 移植 经验者优先; android 开发工程师 工作地点:北京 工作经验:3-5年 薪资范围: ¥ 10-25k 岗位要求: 1、 叁 年以上 android 客户端软件开发经验; 2、 熟练掌握 android 应用开发框架, 至少开 发 过 2款 android 商业应用 软件 ; 3、 熟悉 基本的 数据结构 和 算法 ,并具备基本的算法设计能力 ; 4、 热爱设计 、 编写程序,对 互联网 行业充满激情,有独立的用代码解决问题的能力; 5、 良好的沟通交流 能力及团队 协作精神; 6、 对 移动客户端 产品有强烈的责任心; 高级Android开发工程师 工作地点:朝阳 工作经验:3-5年

最简单的android studio2.3安装 ButterKnife 8.5.1版本方法,解放双手

。_饼干妹妹 提交于 2019-11-27 22:42:37
Android ButterKnife Zelezny 是个很好用的工具,经常会用到,开发的时候经常会做一些搬运工的事,这个工具就是可以一键帮我们搬了!最近android studio 升级到了2.3,我就升级到了Android Studio 2.3正式版,毕竟作为一名IT行业的工作者,肯定需要有一颗勇于接受新技术的心理。稳定版的对开发没有什么影响,平时做开发也不建议用测试版的。 不过得顺便给as 2.3点个攒,升级到了2.3之后再配合自带的avd 运行速度不比Genymotion慢,个人感觉Genymotion启动比较慢,运行的时候很快。不过现在的AVD启动非常快,运行基本上也很快了,感觉跟Genymotion差不多,所以最近就改用AVD了,毕竟AVD和studio 是原生的搭配,所以AS 对AVD支持会更好。 言归正传。 第一步: 打开 Android studio 左上角File-settings-选择Plugins搜索Android ButterKnife Zelezny然后安装重新启动android studio 第二步: 在搜索框中输入 ButterKnife 搜索。选中Android ButterKnife Zelezny ,然后点击右边的Install,稍等片刻后,Install变成了 Restart Android Studio(这不用我翻译了是什么意思吧)

[转]探索 Android 内存优化方法

喜夏-厌秋 提交于 2019-11-27 21:58:25
前言 这篇文章的内容是我回顾和再学习 Android 内存优化的过程中整理出来的,整理的目的是让我自己对 Android 内存优化相关知识的认识更全面一些,分享的目的是希望大家也能从这些知识中得到一些启发。 Android 应用运行在 ART 环境上,ART 是基于 JVM 优化而来的,ART 优化的目标就是为了让 Android 应用能更高效地在 Android 平台运行。 不严谨地说,Android 应用就是一个在 Android 平台运行良好的 Java 程序,承载着 Android 应用的 ActivityThread 同样有 main 方法。 因此只有了解了 Java 的内存管理机制,才能更好地理解 Android 的内存管理机制,如果你对这一块还不熟悉的话,可以看我的上一篇文章 《 Java 内存管理机制 》。 本文的内容可分为下面两部分,大家可以根据自己的需要选择性地阅读。 第一部分 讲的是 Android 内存管理机制相关的一些知识,包括 Dalvik 虚拟机和 ART 环境等。 第二部分 讲的是内存问题的解决与优化方法,包括 Memory Profiler、LeakCanary 工具的使用方法。 1. 为什么要做内存优化? 内存优化能让应用挂得少、活得好和活得久 。 挂得少 “挂”指的是 Crash,假如一个满分的应用是 100 分,那么一个会 Crash

一个Android 架构师的成长之路

心已入冬 提交于 2019-11-27 21:51:45
前言 总所周知,当下流行的编程语言有Java、PHP、C、C++、Python、Go等。其中,稳坐榜首的仍然是Java编程语言,且在以面向对象思想占主导的应用开发中,Java往往成为其代名词。Java语言的背景强大,开发者众多,一直发展都不错。从普遍的企业的角度来看,存在的问题是:后台被认为是技术核心,客户端却被认为技术含量不高,甚至小企业会让后台人员顺便开发简单的客户端,或者让后台的架构师管理客户端几个人。事实上,客户端技术和后台技术的侧重点完全不同,连编程语言都不同(Android使用Kotlin编程语言的逐渐普及)。另外,后台的人跟用户相对离得太远,而客户端是直接面向用户的,与产品人员沟通更直接。所以,我认为企业产品真的是为了给用户用,那么选客户端背景的人员去做移动架构师更好一点。 一、移动架构师职位介绍 (1)移动架构师公认的职位描述是什么? 事实上并没有非常准确的职位描述。不过我可以尝试给出了一个: 设计当前架构。包括新技术方案的制定或评审。 改进过去架构。根据业务的发展或者技术债务的原因,重构当前技术方案并且推进实施。 前瞻未来架构。技术方案调研和分析,随时准备好对新技术的使用。 推进技术方案实施。解决实施过程中具体的技术问题。 技术分享和培训。推进技术交流和新技术的使用。 人员的招聘。技术面试。 (2)移动架构师是否还要日常编码,如果需要,比例是多少?