精华内容
下载资源
问答
  • Android什么选择Java作为开发语言

    万次阅读 多人点赞 2017-01-16 17:40:55
    Android系统基于Linux,内核和驱动都是使用C/C++语言做开发,为什么又设计一个 Dalvik JVM,然后在SDK 层面选择Java作为开发语言? 首先我们需要选用一个语言来开发本地App。 那么,我们第一步干啥了。 在现有...
    Android系统基于Linux,内核和驱动都是使用C/C++语言做开发,为什么又设计一个 Dalvik JVM,然后在SDK 层面选择Java作为开发语言?

    首先我们需要选用一个语言来开发本地App。
    那么,我们第一步干啥了。
    在现有的语言中挑选语言。

    那么首先考虑的条件是不火的语言和没前途的语言是不在选择范围的。
    ---因为没人用,那么库就会少。因为库少就不会好用。因为不好用。所以用的人更少。生态圈的核心思想。
    --那这个世界是不是只有C++/Java了。肯定不是。因为有些语言是有前途的。最大的特点是。简化了程序员的负担。或者效率更高。未来肯定是主流。

    那么我们常用的语言和有前景的语言是哪些
    C/C++/Java/C#/Python/Ruby/Go/JavaScript+Html

    好。这些是我们常用的语言。我们看待的是怎么把这些语言一步步的踢掉。然后只剩下Java的。

    首先踢掉的是C。至今大型的超过10万行代码的图形化界面程序没有几个是用C的。因为复杂的错误处理和没有纠错机制。使得程序非常容易崩溃。同时。因为C没有面向对象。那么工程化开发显得非常麻烦。
    相信没有人现在主动说。用C开发App这种多界面程序吧。

    继续踢掉的是C#。我干嘛要用一个一出生就为了对付Java的。还是微软的私货的语言。对。Android是开源界的。而C#注定不是适合开源界的语言。

    那我们继续踢语言:

    我们该要一门重语言还是轻语言?

    Java/C++/C#/Go/C是重语言。
    Python/Ruby/JavaScript+Html/是轻语言。

    对。我心目中划分语言的标准基本上是属于这样的,只要在代码中体现我们需要讲效率的。那就是重语言。
    重语言首先讲究的是运行效率。然后讲究工程化。
    轻语言讲究开发效率,讲究敏捷性开发。

    回到我们选语言的原则。
    我们想开发一款本地App。还在性能不高的手机上。
    那么除了C之外的开发语言中。运行效率最高的是C++,然后是Java。

    那么轻型语言就要被一个个踢掉了。
    Ruby在网页端有作为。但是库太少。图形库更少,开发者都是网页端的人。被踢。
    JavaScript+Html - ----> 这是未来大一统的趋势。但是我们现在是找一门开发本地App的语言。
    外加真心html+JavaScript有着先天的劣势。(效率+Offline)
    Python有着完善的库。有着极高的人气社区。在手机上开发也有过尝试。(Nokia就干过这事。Ubuntu Phone的UML也是一种类python的语言。)Google也是python的大用户。效率是问题。但是不是绝对的。先对Python实现保留意见。

    那么我们看这一轮入围的四门语言
    Java/C++/Python/Go

    再说Go。Go语言还不成熟。库也不多。开发者少。但是作为Google主打的语言。很有可能。Google会提供基于Go的Android sdk。至少现在Android的主打语言不会是Go。

    剩下三门
    C++/Python/Java
    C++重运行效率。但是跨平台性较弱。开发难度较高。库多,用的人多。
    Python,重开发效率。跨平台性高。开发难度低,库多,用的人多。
    Java。重开发效率。不及python,重运行效率,不及C++。开发难度低。库多。用的人多。

    那再回到需求:
    Google是想要一门开发本地App的语言。Google想屏蔽掉底层硬件的差异。实现对于开发者来说是一个统一的平台。
    同时。对于手机这个现阶段的平台来说。耗电,以及性能。是无法回避的问题。

    那么这门语言的跨平台性要求很高。同时效率又很高。

    说Python:效率实在无法达到其普遍的手机要求。尤其是对于图像处理这种高计算操作。且。社区无法与C++/Java相比。意味着库没有Java和C++多,开发者不是跟Java和C++一个等级的。

    说C++:用过JNI的人都知道本地的C/C++库,至少要编译多次。不同的框架就代表者不同的编译环境。而且直接用C++编译运行的话。C++并不能很好的屏蔽掉硬件差异。所以对于开发来说调试来说,都是一个比较艰巨的任务。
    C++也不是一个非常好的工程化开发语言。
    那有没有破解法。Qt。可以用框架屏蔽掉大部分的细节操作。Qt5.0支持Android。
    为什么没用。估摸着是跟Qt不是Google家的产品加不开源的问题吧。

    说Java:虚拟机是核心。因为虚拟机真正能屏蔽掉开发的很多差异。而且通过虚拟机。开发者只要在打包的时候翻译成运行码而不需要翻译成机器码。通过虚拟机完成很多差异的解决。而效率并不是丢的非常严重。
    且Java比C++更受开源界和工业界的共同欢迎。即使Java也有版权问题。。。

    我们屏蔽掉最基础的硬件差异。通过Linux,在屏蔽掉手机的一些基本功能差异。然后提供纯粹的利于开发者开发和测试的方法。只有通过虚拟机了。而这个虚拟机是需要讲性能的。
    Google搞了一个Davlik虚拟机。对。这就是Android的核心。就是因为性能要求高。不得不重新开发虚拟机。Davlik就是一个非常讲效率的虚拟机。而其他的常用库都有的,现成的。根本就不需要自己去写的。只要打包就好。
    那么还有些必须考效率的库和应用。怎么办。
    用JNI技术调用C++
    对就这么坑爹。


    为什么Object-C这门语言无视我说的大部分要求了。因为Apple有能力创造一门更好的语言。Google对于Android,只是在开源社区挑一门语言。
    且。ObjectC生在Apple,死在Apple。兼容性。人家才不需要考虑。所以人家敢用Object-C,而Android为了实现真正的跨平台。只能选Java。
    展开全文
  • Android开发应该用什么语言

    千次阅读 2019-09-14 11:04:13
    自 Google 于 2017 年宣布 Kotlin 成为 Google IO 的 Android 开发官方语言以来,想要成为Android开发人员的程序员正陷入两难境地。 在讨论这个问题前,我首先要明确一点, 不要陷入编程语言战争,不要进行语言鄙视...

    自 Google 于 2017 年宣布 Kotlin 成为 Google IO 的 Android 开发官方语言以来,想要成为Android开发人员的程序员正陷入两难境地。

    在讨论这个问题前,我首先要明确一点, 不要陷入编程语言战争,不要进行语言鄙视,只要能赚钱的编程语言就是好语言。

     

    最近看到这样一篇文章: Android 冬天来了 , 其实吧, 技术菜的人,同样 iOS冬天来了,PHP冬天来了,python冬天来了,每年都是冬季,哪有春天可言? 人工智能来了,是不是程序员死了 ?

    我作为一名程序员,深知 Android的发展并不像在2012移动风口时那么热门, 但是Android开发也不是寒冬, 天天网上唱衰这语言,助兴那语言,真的没必要瞎操这个心,这是google操心的事 。

    在我们面前真实的一个大问题 我们学习什么,怎样提高技术,说难听点就是怎样多赚钱,对于今天的话题 更是我应该学习Kotlin还是Java?

     

    如果你是一个想要学习Android开发的编程初学者,那么我建议学习Java,如果你是一个想要进入Android App开发目前待遇不错的Java开发人员,那么我建议是Kotlin。今天解释下面两个问题。

    1 为什么Android初学者应该先从学习Java开始?

    2 为 什么Java开发人员应该 在开始 学习Kotlin?

    当我说初学者应该从学习Java开始的时候,你可能会想:“为什么?Kotlin更加高效,代码更简洁,并且也是Android开发的官方语言"而且这个人建议学习Java。并不是唱衰Kotlin....."

    那么,作为一名Android开发,我的观点可能有点偏见,。

    Android开发初学者应该先从学习Java开始

    作为一名程序员,我知道我的粉丝大都是搞Android开发的,但如果你是做Java开发的,你的职业瓶颈相对较高,这意味着你有更多,更高薪的就业机会。

    其次,目前Java也拥有自己强大的开源社区,当你遇到问题就能通过这些找到答案。

    作为初学者,会遇到很多技术问题,当我们在Google搜索问题时,肯定会得到答案;

    相对Kotlin来说,还是一种新的编程语言,很多开源项目还未成熟,并且也相对稀少。

     

    推荐:2017 年开发者生产力报告: Kotlin 很受 Java 开发人员的欢迎

    [RebelLabs通过深入调查得到2017年开发者生产力报告,Kotlin 很受 Java 开发人员的欢迎,Spring 继续主宰企业市场。 RebelLabs通过深入调查得到2017年开发者生产力报告,该

     

    此外,还有很多关于android开发的教程,书籍和课程,包括免费和付费的,这些教程可以让你先用java语言开始入门Android开发之路,但对于Kotlin来说这块资料并不多,特别是在Android上的免费资源,在国外很多关于kotlin的进阶教程大都收费的。

    随着越来越多的程序员开始使用Kotlin开发,情况肯定会有所改善,但我怀疑它会撼动Java编程语言的主流使用地位。

    但是,这不是一条硬性的建议,如果你更喜欢学习Kotlin,并且数学不太好,并且主要想或者已经从事Android开发,那么肯定是从Kotlin开始学习,目前Android Studio已经支持kotlin开发,

    但是,一旦你熟悉Java语言,你的Kotlin之旅也将变得简单和顺利,因为Kotlin完全与Java互相支持调用。它依然编译成Java字节码并在 JVM上 运行。

    Java程序员应该学习Kotlin

    对Java开发人员来说,我认为最好学习Kotlin,因为它确实提高了开发效率。

    一个在Java中使用50行代码的类可以在Kotlin中只写一行。

    它可以帮助你避免所有的火车代码(说了一大堆不知道写的是什么),例如你不需要指定 getter和setter , equals() , hashCode() 或 toString() 方法。Kotlin可以自己生成所有这些。我对 Kotlin 和 Java 在开发编写生产力和编写类似代码的代码方面进行了比较:

     

    如果你不知道Kotlin是由JetBrains开发的,后者也是最流行的Java IDE之一IntelliJ IDEA的后台。

    他们是一家Java 工具开发商,正在开发像IntelliJ IDEA,PyCharm和ReSharper这样的IDE,所有这些都是用Java编写的,并且构建了Kotlin来提高他们的工作效率,但同时他们不能在Kotlin中重写所有的代码,所以这就是为什么他们让Kotlin与Java完全互通。

    因为Kotlin生成Java字节码,所以可以在Kotlin中使用你最喜欢的Java

    框架和三方库,并且其他Java开发人员也可以使用你开发的Kotlin框架。

    即使是Spring, 有个主要的Java框架 已经开始从Spring5.0 开始支持Kotlin了, 可见对于java 人员,Kotlin的未来前景蛮鲜明。 2017 年开发者生产力报告: Kotlin 很受 Java 开发人员的欢迎

    尽管目前几乎所有的Android代码,示例demo 和App都是用Java编写的,但这种情况维持不了多久,因为Google从宣布Kotlin是Android应用程序开发的官方语言以来,都对Kotlin进行了大量的推广,在不同开发者大会都会进行技术演进,并且想facebook, Squre等公司已经切到kotlin开发,国内也有一些独立开发者编写Kotlin教程,虽然国内App目前并没有公开说明已经使用kotlin语言。

    但是很多多公司已经开始使用Kotlin开发Android应用程序,这也是我认为Java,和android高级进阶开发人员应该在今年学习Kotlin的主要原因

    1


     

    转载于:https://my.oschina.net/u/3973578/blog/2996610

    展开全文
  • 谷歌内部的一个团队正在探索全新的应用开发方式,他们利用谷歌自主的网页开发语言Dart来开发Android应用。这帮助他们专注于速度,并可以与网页进行深度整合。Dart由Chrome V8引擎的团队成员发明。该团队近期举行了...

    谷歌内部的一个团队正在探索全新的应用开发方式,他们利用谷歌自主的网页开发语言Dart来开发Android应用。这帮助他们专注于速度,并可以与网页进行深度整合。Dart由Chrome V8引擎的团队成员发明。该团队近期举行了Dart开发者峰会,展示了在Android项目中使用的Dart。在Android项目中使用的Dart并未被称作“Android版Dart”,而是有了一个新名字“Sky”。

    目前,Sky只是一次开源的尝试。但相对于传统的Android应用开发方式,Sky有着多方面优势。Sky的最主要目的包括提高运行速度和响应速度。在大部分设备上,应用流畅的标准都是实现60FPS的帧率。不过,Dart团队希望实现高达120FPS的帧率。目前在Android平台上,许多应用连标准的60FPS帧率都难以达到,更不用说120FPS。60FPS的帧率要求每16毫秒绘制一帧,当画面绘制速度达不到这一水平时,应用就会出现卡顿。

    Dart团队展示了一款演示应用,每帧的绘制速度仅为1.2毫秒。尽管这只是一次简单的展示,但这意味着,对于开发流畅而复杂的应用来说,Sky有着很大的空间,这也使120FPS的帧率成为了可能。该团队表示,Sky的应用程序接口(API)不会影响界面的主线程,这意味着即使应用运行速度变慢,用户界面仍将保持流畅的响应速度。

    Sky并不依赖于平台,其代码可以运行在Android、iOS,以及任何集成了Dart虚拟机的平台上。这类应用的运行类似于网站。应用的很大一部分基于HTTP,这意味着开发者可以进行持续的开发,并确保所有用户一直使用最新版本。这款演示应用的弱点在于无法离线运行,而启动应用则需要1到2秒钟时间,因为应用需要下载数据。不过,这两方面的问题可以通过缓存机制来解决。

    谷歌推全新Android开发语言——Sky

    基于HTTP的模式使开发变得很简单。开发者不必编辑代码、编译并打包,这些代码可以在HTTP服务器上编辑。而用户只需关闭并重新打开应用,即可完成应用的“升级”。这就像是一款网页浏览器。Android开发者可以使用Sky Framework,这提供了一整套Material Design小工具,帮助开发者方便地增加操作栏、触控效果、导航面板,以及Android应用中所需的一切元素。

    与普通应用类似,Sky应用可以获得Android的全部权限和API,但结合来自网页服务器的自动升级功能,这将带来信息安全问题。不过目前,Sky仅仅只是一个试验项目。在Sky成为一种主流的Android应用解决方案之前,Sky团队需要解决这些问题。该团队的GitHub页面显示:“我们仍在对Sky进行频繁地迭代,这意味着框架和底层引擎有可能以不兼容的方式出现改变。”

    展开全文
  • 前言 许多 Android 开发者经常会问我,要学会哪些东西才能成为一个优秀的 Android 工程师?对于这个问题,他们的描述或多或少都有些差异,但是,...因此,在本文中,我将分享我在 Android 开发中所使用到的重要技能,

    前言

    许多 Android 开发者经常会问我,要学会哪些东西才能成为一个优秀的 Android 工程师?对于这个问题,他们的描述或多或少都有些差异,但是,总体来说,我们都需要学习一系列的技能,才能成为一个优秀的 Android 工程师。

    在我看来,存在这样的困惑是正常的。Android 是一个巨大并且动态的生态系统,你可能需要花好几周时间去了解并学习它相关的一些工具和概念,但是最后你会发现,它们有好多都不是很重要,或者说并不是非常有用。因此,在本文中,我将分享我在 Android 开发中所使用到的重要技能,希望能够帮到你,让你把你的精力集中到重要的事情上。

    所以,今天,我将献上一份《Android知识图谱》,以自身的经验 & 所见所闻,旨在告诉大家,学习Android,实际上需要学习什么内容,希望你们会喜欢。

    破局

    焦虑的移动开发者该如何破局呢?并且企业究竟需要什么样的移动开发人才?移动开发者还需要学习什么实现架构进阶呢?

    我们通过智联招聘、拉勾网、Boss直聘、前程无忧发布的移动互联网招聘岗位需求发现:移动端的招聘量变少,但中高端的职位却多了起来,这说明行业只是变得成熟规范起来了。竞争激烈,但产品质量与留存更加重要,我们进入了技术赋能业务的时代。大前端正在跨平台,移动开发者的未来更可能是跨终端,产品、运营、数据分析、后端,技多不压身。

    然而目前大多数Android开发者都处于初中级水平,想要往上突破,想跳槽进大厂。无不是遇到了以下这些困难。

    接下来我们看一份腾讯课堂提供的腾讯T4级别资深移动架构师成长路线。

    通过这份成长路线图,我们一起分享学习移动开发者实现架构进阶还需要学习什么?

    一、掌握架构师筑基必备技能

    img

    二、掌握Android框架体系架构

    img

    三、学会360°全方位性能调优

    img

    四、通过设计思想解读开源框架

    img

    五、学习NDK模块开发

    img

    六、通过实战炼成移动架构师

    img

    学习宝典

    对我们开发者来说,一定要打好基础,随时准备战斗。不论寒冬是否到来,都要把自己的技术做精做深。虽然目前移动端的招聘量确实变少了,但中高端的职位还是很多的,这说明行业只是变得成熟规范起来了。竞争越激烈,产品质量与留存就变得更加重要,我们进入了技术赋能业务的时代。

    不论遇到什么困难,都不应该成为我们放弃的理由!

    很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我针对Android程序员,我这边给大家整理了一套学习宝典!包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

    Android学习PDF+架构视频+面试文档+源码笔记

    【Android核心高级技术PDF文档,BAT大厂面试真题解析】

    【算法合集】

    【延伸Android必备知识点】

    mg-XRixwNBq-1614865680845)]

    【延伸Android必备知识点】

    [外链图片转存中…(img-5PRs2WkS-1614865680847)]

    【Android部分高级架构视频学习资源】

    展开全文
  • 如何看待 Kotlin 成为 Android 官方支持开发语言

    万次阅读 多人点赞 2017-05-21 21:34:49
    Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言。一时间朋友圈和Android圈被各种刷屏。当然我也顺势而为发布了一篇的文章《为什么我要改用Kotlin》,着实狠狠地蹭了一波热度(尽管这样会被鄙视)。眼下...
  • 根据调研机构Strategy Analytics的最新统计数据,2014第三季度,iOS和Android已经占据全球首能手机96%的市场份额。 其中,Android依然是绝对的霸主,豪取83.6%,而且相比去年同期又增长了3个百分点,iOS占比为12.3%...
  • android开发语言Kotlin的入手Demo

    千次阅读 2017-06-05 16:11:50
    google的发布大会确认了Kotlin为新的android开发语言,对于开发者意味着什么呢? 个人觉得这只是为android开发提供了一个新的选择,毕竟还有其他语言一样可以用于android开发,只是没有得到google的官方认同罢了...
  • 网络大厂为增加开发者效率,对Android开发工具除了加强开发语言Kotlin的重要性外,Android Jetpack函式库也增加了更多新功能,而在去年发布的新APK格式Android App Bundle,其中动态功能模块与应用程序内更新,都...
  • 我现在打算开发个Android系统,就像kindle电子书系统一样,我用android开发类似的系统,需要学什么语言
  • Kotlin是一个由JetBrains开发,用于现代多平台应用的静态编程语言。 Kotlin语言被赞誉为Android世界里的Swift.对比Java,Kotlin更简洁,更安全,更快,据统计,使用Kotlin语言大约可以减少30%的代码编写,同时也不用...
  • 从谷歌 I/O 2017宣布将支持它作为Android开发的首推语言来看,引发了不少业界程序员的广泛关注。本博客从三方面讲解这个后起新秀。什么是kotlin:一门与Swift类似的基于 JVM(Java虚拟机,英文名:Java Virtual ...
  • Android 开发切换语言中英文前言解决方法建立其他语言文件帮助类语言记录存储切换语言完事 前言 在开发一个客户的产品,需要在美国展会上使用,所以就需要多语言切换的app,临时抱佛脚,百度了一下发现都在用 ...
  • Android开发之适配系统语言切换
  • Android开发都需要使用什么语言

    万次阅读 2014-11-24 10:15:53
    Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面。...
  • Android软件开发什么语言

    千次阅读 2014-06-20 11:29:25
    想学Android软件开发,用Java可以吗?相对C++会不会有功能上的限制? 如果是Java,那我当当上搜索了一下书怎么好像都是C++的? 其实就是做一些简单的应用,什么底层那些,目前没那兴趣和精力。就是想做一些玩玩。。...
  • 开发语言的选型JAVA or Kotlin
  • Android是一个基于Linux的免费和开源移动操作系统,用户基数很大,很多企业在进行app开发的时候,都会选择开发安卓版本的app,下面我就给大家简单介绍一下,企业最常用到的安卓app开发语言有哪些。企业最常用的安卓...
  • android开发多国语言对照表

    万次阅读 2015-11-04 11:01:53
    android开发,支持多国语言时,都是“语言-地区”简称不好记忆,此处网络收集来作为笔记参考。 android4.3支持源码中msm8x12\build\target\product\languages_full.mk PRODUCT_LOCALES := en_US fr_FR it_IT es_...
  • Picasso,谐音"毕加索",听起来就很艺术,是 Square开源的项目,主导者是是Android大神JakeWharton。 Glide,是google员工在Picasso基础上进行优化,总体比Picasso更优秀,在Google很多项目在用。 Fresc...
  • android操作系统的开发语言组成

    千次阅读 2014-08-13 10:56:58
    Android系统开源是人尽可知的
  • android app 用什么语言开发

    千次阅读 2018-12-06 11:31:26
    首先我们需要选用一个语言开发本地App。 那么,我们第一步干啥了。在现有的语言中挑选语言。 那么首先考虑的条件是不火的语言和没前途的语言是不在选择范围的。---因为没人用,那么库就会少。因为库少就不会好用。...
  • 如果你是一个C++语言的...对Android程序的执行速度过于敏感,喜欢自己用手动档来控制程序的内存,本教程就是为了满足你的以上诸多怪癖而发布的,本文的目的就是指导你学习如何只用C++语言开发Android程序,而不使...
  • 1、简介 Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。 Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。...JetBrains,作为目前广...Kotlin已正式成为Android官方
  • [size=13px]请问Android 软件用什么语言进行软件开发?我在Google搜索有些人说是java,有些人说是c/c++,到底是哪个?java能不能开发windows下的游戏??[/size]
  • Go语言开发Android程序

    千次阅读 2017-03-21 22:12:37
    Go 语言开发 Android 程序 转自:http://studygolang.com/articles/9620 环境配置 安装 Go 1.5 以上版本,具体安装步骤见官网 https://golang.org/doc/install 安装 gomobile ...
  • 使用 lua 来构建跨平台原生应用有许多好处,比如 lua 语言简洁高效,可移植性好, Lua虚拟机极为轻量,仅占用200到300k的内存空间,且速度极快。
  • android app 用什么语言开发的?

    万次阅读 多人点赞 2017-03-11 10:52:05
    首先我们需要选用一个语言开发本地App。 那么,我们第一步干啥了。 在现有的语言中挑选语言。 那么首先考虑的条件是不火的语言和没前途的语言是不在选择范围的。 ---因为没人用,那么库就会少。因为库少就不会...
  • apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 28 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.ly.autoscrolllayout" .
  • 在面试的过程中我深深的感受到,对于一个优秀的安卓开发来说,首先摆在第一位的还是他/她作为一个软件工程师的基本素养。无论你是做前端还是后端,最后定义你的优秀程度的还是作为软件工程师的基本素养,学习能力和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,217
精华内容 81,286
关键字:

安卓开发语言是什么