精华内容
下载资源
问答
  • 历久而新,我的新书《第二行代码》已出版!

    万次阅读 多人点赞 2016-11-23 09:49:08
    第二行代码》中的内容我相信很多人都会非常感兴趣,因为里面确实加入了很多很新的知识。略粗概括一下的话,新增内容就包括有Android Studio、Gradle、Material Design、运行时权限、多窗口模式、RecyclerView、...

    转载请注明出处:http://blog.csdn.net/sinyu890807/article/details/52032038

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。

    回顾

    《第一行代码》从出版到现在已经有两年多的时间了。当然,如果是从我开始写书的那天算起的话,时隔已经三年半之久了。回顾这三年半的时光,不得不感慨,Android 技术的发展真是日新月异。

    记得在2013年我刚开始动笔写《第一行代码》的时候,Google正好推出了新的开发工具Android Studio,不过那个时候还只是 v0.1 版本。当时我还和我的编辑陈冰老师讨论过,书中到底是使用Eclipse来开发还是使用Android Studio来开发。最后讨论下来,由于Android Studio还太过于早期,不够成熟和稳定,因此《第一行代码》中还是使用Eclipse来作为开发工具的。而如今,三年多的时光,Android Studio已经从0.1版本升级到2.2版本了,并且早已替代了Eclipse,成为当前最主流的Android开发工具。

    《第一行代码》全书的完稿时间大概是在2014年的3月份,而就在5月份的一天早上,陈冰老师急匆匆地打我电话,说出大新闻了!我疑惑地问:“什么大新闻啊?”他说:“啊?你不知道啊,Android出5.0系统了!(那个时候还叫Android L)”我当时听了之后脑子是有点懵逼的,要知道,《第一行代码》是基于4.x系统来编写的,谷歌从2011年发布4.0系统以来,一直是以4.1、4.2、4.3、4.4这样的小版本系统来升级的,怎么偏偏就在《第一行代码》快要发售的时候推出了这个号称是“历史上版本改动最大”的系统升级呢!

    当时我和陈冰老师还是紧急商讨了一下,由于《第一行代码》计划是8月份上市,如果非要强行加入5.0系统的内容,一是我学习需要时间,二是写作也需要时间,这样书的发售就必然要推迟了。后来我们觉得,新系统刚刚出来,普及恐怕还要很久,就不赶这波热潮了。于是,《第一行代码》中的内容最终仍然是基于Android 4.x来编写的。

    后来这两件事让我始终觉得遗憾,由于时间的原因,《第一行代码》完美地和Android Studio以及Android 5.0错过了。

    成绩

    虽说缺少了一些最新的知识点,包括后来还出现了盗版泛滥的事件,不过这些都没能影响《第一行代码》火爆的销售。其实并不是因为我推广做得有多好,大家可能觉得我的博客访问量比较高,在上面挂个推广链接什么的就能让书畅销了,并没有那么简单。

    《第一行代码》在2014年的销量其实很一般,是在2015年才攀升上去的。那个时候很多第一批《第一行代码》的读者已经把书读完了,产生了良好的口碑,他们又将这本书推荐给了更多想学习Android开发的人。这种人传人的方式,比我单纯在博客上面挂个购买链接以及出版社的各种宣传要远远有效得多。如果真是一本大烂书,相信不管我怎么推广,也不会有多好的销量的,反而还会被大家骂。只有真正内容过硬,才能得到大家的认可。

    现在,只要你去大一点的书店或图书馆逛一逛,在里面都能找到《第一行代码》的身影。京东或者亚马逊的畅销排行榜,《第一行代码》在Android图书分类里大多数的时候销量都是排第一的。良好的口碑让很多人将《第一行代码》作为学习Android的首选书籍,现在将它称之为国内的“Android学习第一书”应该并不为过。

    那么《第一行代码》到底卖了多少本呢?之前我还从来没有公布过具体的数字,那么由于要出版升级版了,可以向大家汇报一下成绩了。很多没接触过图书行业的人,对于书的销量可能没什么概念,这里我先向大家普及一些知识。首先中国的图书行业并不是很发达,因为喜欢买书的人确实不多,而计算机图书又由于受众面很窄的原因,买的人就更少了。现在的不少计算机图书甚至是连首印都卖不完,能卖到一万本以上的计算机图书就可以算得上是畅销书了,能卖到三万本的话那已经是凤毛麟角了。陈冰老师当时拍胸脯跟我保证说,《第一行代码》至少能卖两万本,我笑笑说,能卖到一万本我就心满意足了。而现在,《第一行代码》出版两年半的时间,一共卖出了八万一千本,这个成绩是当初谁都无法预料到的。在图灵出版的所有原创书中,《第一行代码》是卖得最好的。

    新的开始

    《第一行代码》虽然没有赶上Android Studio和Android 5.0的热潮,但同时这几年Android技术发展得实在是太快了。2015年Google推出了Android 6.0系统,2016年又推出了Android 7.0系统。其实每推出一个新的系统,也就意味着《第一行代码》中的内容更加过时。因此在今年年初的时候,我终于下定决心,将书中的内容全面升级,开始编写《第一行代码——Android 第2版》。当然这个名字感觉有点长,因此我更喜欢直接叫它《第二行代码》

    新书的首要目标是要将《第一行代码》中已经过时的内容进行更新,以及加入这几年出现的各种新技术的讲解。包括Android Studio的使用,以及Android 5.0、6.0、7.0系统中引入的各种新的功能。

    由于书的整体内容结构没有改变,因此一开始我以为只是小修小补而已,但事实上远没有我想象得那么轻松。除了介绍新知识点之外,书中之前的所有项目都需要重新编写和测试,以保证代码在新老系统上的兼容性。另外,由于Android从5.0系统开始,UI风格变化很大,因此《第二行代码》中所有的截图都需要重新截取,没有一张图是可以直接使用《第一行代码》中的。毫不夸张地说,我几乎重写了整本书。

    这次的新书我大概是在今年2月份的时候开始动笔的,基本保持着每个月写3章的进度,到9月份的时候书中绝大部分的内容都已经写完了,然后我就开始等,等Android 7.0以及Android Studio 2.2正式版的发布。因为我不想重蹈覆辙,再留上次的遗憾,我不想书中的内容都是基于Android 6.0来编写的,而书还没来得及上市,Android 7.0系统就推出了。既然是要更新,那么就索性一次性更到最新。

    Android 7.0其实还好,大概是在9月初的时候就推出正式版了,但当时Android Studio 2.2的正式版真的等得我好焦急,每天我都要到官网上去刷一下看看有没有发布。终于在9月下旬的时候把Android Studio 2.2给盼来了,于是我迅速对全书的所有内容进行了一遍修订,并将所有的代码都在Android 7.0和Android Studio 2.2中进行了重新的适配。10月份的时候全书顺利完稿并且进入出版流程,11月初送厂印刷,11月底开始预售,这个速度恐怕已经是史无前例了。

    因此,《第二行代码》也是国内第一本基于Android 7.0系统的书籍。

    内容

    《第二行代码》中的内容我相信很多人都会非常感兴趣,因为里面确实加入了很多很新的知识。略粗概括一下的话,新增内容就包括有Android StudioGradleMaterial Design运行时权限多窗口模式RecyclerView百分比布局Lambda表达式OkHttpDoze模式等等,几乎囊括了Google近几年推出的所有热点技术。除此之外,还加入了几个比较完整的项目,不仅单个知识点的内容更加丰富,对各知识点之间的综合运用讲解也比《第一行代码》要好上很多。总而言之,这真的是我写得非常用心的一本书。

    下面我就挑几个《第二行代码》中比较有特色的章节来给大家详细介绍一下吧。

    第1章中搭建开发环境不再是使用Eclipse了,而是改用了Android Studio。书中除了对Android Studio的基本用法进行了讲解之外,还介绍了一些小技巧,比如说下面的这种Log打印技巧我相信很多人是不知道的:

    20161113223841511

    第3章中,新增了RecyclerView百分比布局的讲解,其中对ReyclerView的多种方法都进行了细致的介绍,包括会带着大家实现纵向列表、横向列表、以及瀑布流列表的效果,下面是瀑布流效果的截图:

    另外,第3章中还将最佳实践环节的聊天界面使用RecyclerView进行了重写,最终效果如下:

    第7章中增加了Android 6.0运行时权限的讲解,第8章中对系统通知的各种用法进行了更新,第9章中增加了OkHttp的讲解,第10章中结合前面所学过的运行时权限、通知、OkHttp等知识,实现了一个综合度非常高下载服务程序,并且应我的QQ群中群友们的要求,这个下载服务还支持了断点续传功能。效果如下图所示:

    第11章中讲的是地理位置服务(LBS),其实在《第一行代码》中,LBS方面的内容已经写得比较详细了,只是由于近几年Google的服务在中国全面无法访问,因此《第一行代码》中的这些内容也都失效了。那么为了保证这次《第二行代码》中的内容大家都可以正常运行,我将所有使用Google LBS服务的部分都替换成了百度LBS,现在不管是定位也好,地图也罢,大家都可以放心运行而不用担心程序一直跑不通了。

    第12章是本书变动最大的一个地方,因为整章内容全部重写了。原来《第一行代码》中的第12章讲的是传感器的使用,我觉得这部分内容比较鸡肋,于是直接将这一章删掉了。现在《第二行代码》的第12章使用一整章的篇幅介绍了Material Design方方面面的知识,包括讲解了Toolbar滑动菜单NavigationView悬浮按钮SnackbarCoordinatorLayout卡片式布局下拉刷新折叠式标题栏等等控件的用法和特效的实现。整章内容学习完之后,最终大家都能实现一个具有高度Material Design效果的程序,如下图所示:
    (由于CSDN最大只能上传2M的图片,因此画质被压缩得有点渣。你也可以点击 这里 查看高清版的视频效果)

    第13章中也加入了不少新的内容,因为第13章是最后项目实战之前的一个总结性章节,里面有很多你必须要掌握的高级技巧。新增内容包括有Android 6.0 Doze模式讲解Android 7.0多窗口功能讲解、以及Lambda表达式讲解等,也都是满满的干货。

    第14章仍然是项目实战部分,仍然开发的是酷欧天气,只不过这次开发的是酷欧天气2.0,比《第一行代码》中的酷欧天气可要牛逼得多了。之前很多朋友在学习《第一行代码》中的酷欧天气时,时不时就会有人跟我反馈,获取省市县数据的接口访问不了了,或者是获取天气信息的接口访问不了了。对于这种情况我也无可奈何,毕竟用的是第三方服务的接口,人家接口关闭了我也没有办法。而《第二行代码》中,为了保证接口的稳定性,我专门在京东云上购买了一台服务器,用于给大家提供长期可靠的接口支持,保证不会再让大家遇到学着学着接口就失效了的问题。

    另外,如果你也有使用云服务的需求,可以点击 这里 注册京东云账号,免费体验京东云服务。

    说了这么多,那《第二行代码》中的酷欧天气到底比《第一行代码》中的酷欧天气牛逼在哪里呢?我们直接来看下效果对比就知道了。先来看一下《第一行代码》中的酷欧天气效果,如下所示:

    然后我们再来看一下《第二行代码》中的酷欧天气效果,如下所示:

    相信不需要我多说,大家也一眼就能看出来,这两个版本的酷欧天气明显不是在一个档次上的。另外,新版酷欧天气的背景并不是一成不变的,而是每天都会有不同的背景,那么是如何实现的呢?等你学到这一章的时候就知道了。

    第15章仍然还是教大家如何打包APK文件,以及如何上架应用程序,但是这次将会使用Gradle来打包APK,并且讲解了如何使用Gradle来打包多渠道APK文件。至于上架部分,《第一行代码》中讲的是如何上架Google Play,而现在Google Play已经无法访问了,因此《第二行代码》中改成了教大家如何将APP上架到360应用商店。总之,《第二行代码》的宗旨就是一定保证书中的所有例子都可以跑得通。

    当然,除了上述内容之外,其他章节也都有很多的改动。尤其是在程序兼容性调整方面,几乎对每一章的代码都进行了优化和升级,以保证书中所有的程序在Android 7.0系统上都能完美兼容。不过这里我就不展开来细讲了,更多内容等待你自己去发现。

    封面

    《第二行代码》的封面设计可以说是下足了功夫。因为要和《第一行代码》有传承关系,但又要和《第一行代码》有明显的区分。因此,我当时给设计师提了两点要求:

    1. 让人一眼看上去就知道这是《第一行代码》
    2. 让人一眼看上去就知道这不是《第一行代码》

    设计师当然也是做得很用心,给我提供了好几个版本让我选择,然后我又从中选出了3个我个人比较满意的版本,最后在公众号上搞了一个投票让大家来做最终筛选:

    最终,绿色版本以接近50%的得票率当选,《第二行代码》的封面也最终定版,由大家共同选出来的一定是最好的,我们来一起欣赏下吧。

    再来看一张霸气的宣传海报吧:

    书签

    《第二行代码》中还会赠送大家一个非常非常精致的小礼物,我个人认为这个小礼物也是这本书的特色之一。

    其实我从小就是一个特别爱惜书的人,我是从来不舍得给书折角来记录看到哪里的。每当看到有些人将一本书的书角折得伤痕累累时,我都会觉得很心疼。因此,当我听出版社说,可以在《第二行代码》中赠送书签时,我高兴得要命。

    既然是要赠送书签,那么书签也得好好设计一下。我仔细想了想,书签的主题一定要和书的主题相关才行,而《第二行代码》中最主要的特色就是涵盖了Android 5.0、6.0、以及7.0中的知识,那么就干脆以这三个系统为主题,设计三种不同风格的书签吧。

    设计师当然也是很给力,设计的三种书签都非常好看,我们来一起欣赏一下吧:

                 

    这三种书签会随机放在每一本书里面,你将会拿到哪一种书签就全看运气了。

    当然,书签这种小东西并不值什么钱,但是我还是花了很大心思去做这件事情,因为我对这本书的一点一滴真的都很用心。

    定价

    《第二行代码》的定价我只能用“很良心”来形容。《第一行代码》一共有500多页,却只定了79元,出版社的成本负担已经比较高了。而这次《第二行代码》不仅全面升级了内容,页数也增加了几十页,还赠送书签等等,因此出版社强烈建议将书价定为89元。虽说书价越高意味着我拿到的稿费也越多,但是高的书价同时也会在一定程度上影响销量。我咨询过QQ群里的群友们,其实很多人还是很在意书价的,尤其是还没工作的学生。因此,为了给大家争取权益,我也是尽了我最大的努力和出版社各种沟通、协商,最终出版社终于同意让《第二行代码》仍然保持79元!全面升级了内容,价格还一分钱不涨,这已经是我所能做的全部了。感谢出版社在价格方面做出的妥协,毕竟纸张、印刷、物料等各种成本都在飞涨。

    不过仍然要提醒大家一点,79元只是书的标价而已,而通常我们在网上买书都是有折扣的。折扣的多少由各网店自己来定,我参与不了,但一般也就是五六十块钱就能买到了。

    购买

    了解了这么多,不知道你有没有下定决心要买一本呢?目前《第二行代码》这本书已经在京东、当当、亚马逊等网上书店上架了,也上架了PDF、Kindle等电子版,有需要的小伙伴们请猛戳下面的地址:

    京东购买地址

    当当购买地址

    亚马逊购买地址

    天猫购买地址

    PDF版购买地址

    Kindle版购买地址

    豆瓣版购买地址

    多看版购买地址

    勘误

    新书出版,里面难免会存在一些勘误,大家可以点击 这里 查看所有已知的勘误,在阅读的时候避过这些坑,每一个确认的勘误都会在下一次印刷的时候修正。当然,如果你有发现任何勘误,也可以在这个网站上进行提交,一旦勘误被确认还能领到图灵的银子,银子可以用来免费兑换图灵的图书呦。


    关注我的技术公众号,每天都有优质技术文章推送。关注我的娱乐公众号,工作、学习累了的时候放松一下自己。

    微信扫一扫下方二维码即可关注:

    20160507110203928         20161011100137978

    展开全文
  • 郭霖大婶的最新出版书《第一行代码》(第二版),又称第二行代码。文件里面是书的目录和源码。
  • Android第二行代码(郭霖全书源代码)
  • 笔者前言最近在读郭霖大神的第二行代码,借助第二行代码,在这里我认真梳理Android知识,为了形成自己的知识体系。坚持写一系列关于第二行代码的学习笔记,一是来提升自己的学习能力,坚持每天学习; 二是给自己整理...

    笔者前言

    最近在读郭霖大神的第二行代码,借助第二行代码,在这里我认真梳理Android知识,为了形成自己的知识体系。坚持写一系列关于第二行代码的学习笔记,一是来提升自己的学习能力,坚持每天学习; 二是给自己整理一份资料,方便以后的查阅与复习。希望能够帮助到更多的小伙伴们:

    Android系统是目前世界上市场占有率最高的移动操作系统。


    1.1 了解全貌——Android王国简介

    Google为Android王国建立了一个完整的生态系统。

    1.1.1 Android系统架构

    Android系统架构分为四层:
    (1) Linux内核层:
    Android系统基于Linux内核。 为Android硬件提供底层驱动,例如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等。

    (2)系统运行库层:
    通过C/C++库为Android系统提供特性支持,如:SQLite库提供数据库支持,Webkit库提供浏览器内核支持。
    该层还有Android运行时库,提供核心库,允许用Java语言开发Android应用。Android运行时库还包含Dalvik虚拟机(5.0后是ART运行环境)。

    (3)应用框架层:
    提供应用程序的各种API。

    (4)应用层:
    手机中所有的应用程序属于应用层。

    1.1.2 Android已发布的版本、

    Android至今为止已经发布到7.1版本——API版本为25。
    通常开发最低版本为4.0——API为15。
    查看最新数据请访问:http://developer.android.com/about/dashboards/

    1.1.3 Android应用开发特色

    (1) 四大组件
    Activity(活动)
    Service(服务)
    BroadCast Receiver(广播接收者)
    Content Provider(内容提供者

    (2)丰富的系统控件
    编写漂亮界面。
    定制自己的组件。

    (3)SQLite数据库
    轻量级,运算速度极快的嵌入式关系型数据库。支持SQL语法。

    4)强大的多媒体
    音乐,视频,照相,录音,闹铃等。

    (5)地理位置定位
    Android手机内置GPS,随时随地发现自己的位置。


    1.2 手把手带你搭建开发环境

    “工欲善其事,必先利其器”

    1.2.1 准备所需要的工具

    • JDK1.8以上:Java语言的软件开发工具包(包含Java的运行环境,工具集合,基础类库等内容)
    • Android SDK:Android开发工具包
    • Android Studio:Android编译器

    1.2.2 搭建开发环境

    下载Android Studio:
    https://developer.android.google.cn/studio/index.html
    下载下来是一个安装包,一直点Next就可以了,选择Android组件全部建议勾上。


    1.3 搭建你的第一个Android项目

    HelloWorld——永恒的经典。

    1.3.1 创建HelloWorld项目

    点击Start a new Android Studio Project打开创建项目界面:

    创建项目界面

    最低兼容版本设置界面

    内置模板界面

    创建活动和命名界面

    创建成功界面

    1.3.2 启动模拟器

    第三方模拟器——Genymotion模拟器。号称史上最快的模拟器可不是吹的。
    访问官网下载地址:https://www.genymotion.com/download/

    Genymotion_down

    安装好了之后,启动并登录Genymotion。

    启动并登录

    我已经下载好了几个不同版本模拟器,大家无视即可,点击上方的”Add”按钮。

    Add

    下载好之后,点击上方的”Start”按钮,启动模拟器。
    启动1

    启动2

    这样我们的模拟器已经启动起来了。
    开发建议用真机,毕竟模拟器再快,也不如真机用的舒心。

    1.3.3 运行HelloWorld

    运行HelloWorld到模拟器上。

    工具栏的图标

    点击三角形按钮,弹出对话框。

    选择设备

    HelloWorld运行成功:

    运行成功

    接下类我们来分析下HelloWorld这个项目吧。

    1.3.4 分析你的第一个Android程序

    展开HelloWorld项目。

    Android

    可以切换项目模式。

    切换项目结构

    切换成Project,真是的目录结构

    Project

    分析结构:

    1. .gradle和.idea
      Android Studio自动生成的文件。
    2. app
      项目中的代码,资源几乎都在放app目录下。
    3. build
      项目编译时自动生成的文件
    4. gradle
      包含gradle wrapper的配置文件 ,使用gradle wrapper不需要提前将gradle下好,Android Studio会自动根据缓存情况决定是否需要联网下载。默认不启用gradle wrapper,可以通过File ——> Setting ——> Build , Execution , Deployment ——>Gradle进行配置更改,打开gradle wrapper。
    5. .gitignore
      指定的目录或文件排除在版本之外
    6. build.gradle
      项目全局的gradle构建脚本
    7. gradle.properties
      全局的gradle配置文件,这里配置的属性影响项目中所有的gradle编译脚本
    8. gradlew和gradlew.bat
      命令行界面执行gradle命令 ,gradlew Linux或Mac系统中使用 ,gradlew.bat Windows系统中使用 。
    9. HelloWorld.iml
      所有IntelliJ IDEA项目中都会自动生成的文件,用来标识这是一个IntelliJ.IDEA项目。
    10. local.properties
      指定本机中SDK路径,通常自动生成 。
    11. setting.gradle
      指定项目中所有引入的模块。

    app目录的结构:

    app

    分析app目录结构:

    1. build
      编译时自动生成的文件。
    2. libs
      放置第三方jar包
    3. androidTest
      编写Android Test测试用例,项目自动化测试
    4. java
      放置所有Java代码
    5. res
      项目资源目录
    6. AndroidManifest.xml
      Android项目配置文件
    7. test
      编写Unit Test测试用例,项目自动化测试
    8. .gitignore
      控制版本忽略文件
    9. app.iml
      IntellJ IDEA自动生成的文件
    10. build.gradle
      app模块的gradle构建脚本
    11. proguard-rules.pro
      指定项目代码的混淆规则

    1.3.5 详解项目中的资源

    drawable 存放图片
    mipmap 存放应用图标
    value 存放字符串,样式,颜色等配置
    layout 存放布局文件

    1.3.6 详解build.gradle文件

    Android Studio是采用Gradle构建项目的。

    最外层build.gradle文件:

    外层gradle

    app目录下的build.gradle文件:

    app下的gradle


    1.4 前行必备——掌握日志工具的使用

    1.4.1 使用Android的日志工具Log

    Android中日志工具类:Log(android.util.log)提供了5个方法来打印日志:

    • Log.v()。最小的日志。——verbose。
    • Log.d()。调试信息。 ——debug,比verbose高一级。
    • Log.i()。比较重要的信息。——info,比debug高一级。
    • Log.w()。警告信息。——warm,比info高一级。
    • Log.e()。错误信息。——error,比warm高一级。

    1.4.2 为什么使用Log而不使用System.out

    Log:可控制打印信息,确定打印时间,能添加过滤器,日志有级别区分……
    而System.out满足不了。


    1.5 小结与评论

    搭建了第一个Android项目,并且对Android项目的目录结构和执行过程有一定的了解。以及日志的使用。
    快速生成Log方法:log* 按Tab建。
    运行程序的快捷键:Shift+F10(MAC control+R)。

    展开全文
  • 前言大家好,我是 Vic,今天给大家带来Java入门行代码的概述,希望你们喜欢行代码学习Java基础课程,学会使用eclipse,eclipse为Java集成开发坏境IDE,创建一个Java源文件代码:public class HelloWorld{...

    前言

    大家好,我是 Vic,今天给大家带来Java入门第一行代码的概述,希望你们喜欢

    第一行代码

    学习Java基础课程,学会使用eclipse,eclipse为Java集成开发坏境IDE,创建第一个Java源文件代码:

    public class HelloWorld{
     public static void main(String[] args){
      System.out.println("hello world");
     }
    }
    

    要点:

    • HelloWorld为类的名字
    • public static void main(String[] args) 为主方法
    • System.out.println("hello world")为打印输出,并在控制台显示 hello world
    • public 为访问修饰符,表示公开的访问类

    Java为面向对象的语法

    • 什么是面向对象?
      答:在Java中一切皆对象;可以理解为现实世界中的人,物,都可以看做为对象。

    在一个Java的类中,该类可以为对象,那么类就是一个对象,一个对象就如人,它有方法和属性,即为动作和状态的特征。

    //建立一个人的类
    public class Person{
     String name; //人具有姓名的属性
     String age; //人具有年龄的属性
     public void eat(){
      System.out.println("人具有吃的方法");
      }
    }
    

    变量的定义

    什么是变量,即为可以变化的量,示例

    int age = 12;

    • 其中 int 为变量的数据类型,表示整数
    • age 为变量
    • “=” 为赋值操作符,把右边的值赋值给左边的变量
    public class Person{
     int age = 12;
     public static void main(String[] args){
      System.out.println(age);
     }
    }
    

    介绍八种基本变量的类型

    八种基本数据类型

    • 整型 4种:byte(8位),short(16位),int(32位),long(64位)
    • 字符型 1种:char(16位)
    • 浮点型 2种:float(32位),double(64位)
    • 布尔型 1种:boolean(1位)(true,false)

    String类型(独立来讲,不是基本数据类型,为final修饰的)

    String类型一旦被创建,就不能够被更改。字符串类型的表达效果,示例:String name = "Vic"

    强制类型转换和自动类型转换

    • 数据类型的转换
      数据类型的理解:规则口诀
      小到大自动,大到小强制,表示小杯子里的水可以倒入大杯子里,而大杯子里的水倒入小杯子里,会出现溢出。

    转换的数据类型比较 /
    byte->short(char)->int->long->float->double

    Java中的命名规范

    如果有人问Java中的命名规范,你可以简单的说:英,数,$,_ ,(第一位不能为数字),不能为关键字。

    成员变量和局部变量

    声明在方法体外的变量为成员变量,声明在方法体内的变量为局部变量。

    Final修饰符

    上述表达final修饰的,为不可变得值,final可以修饰变量,修饰类,修饰方法。

    • 被修饰的变量,只能被赋值一次
    • 被修饰的类,不能被继承
    • 被修饰的方法,不可被重写

    Static关键字的理解

    答:“ static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。” ---《Java编程思想》

    static代码块,只会在类加载的时候执行一次。static变量不需要创建对象就可以引用。

    静态成员变量可以通过对象访问,只要访问权限足够就可以。

    静态代码块,随着类的加载而执行,只执行一次。

    class StaticDemo{
    static{
    System.out.println("静态代码块");
    }
    void show(){
    System.out.println("方法");
    }
    }
    
    public class Test{
    public static void main(String[] args){
     new StaticDemo().show();
     new StaticDemo().show();
     }
    }
    //result
    静态代码块
    方法
    方法
    
    public class Test{
    static{
    System.out.println("静态");
    }
    public static void main(String[] args){
    System.out.println("静态main");
    }
    }
    //result 静态代码块优先于main函数执行
    静态
    静态main
    
    class StaticDemo{
    static{
    System.out.println("parent静态代码块");
    }
    {
    System.out.println("parent非静态代码块");
    }
    StaticDemo(){
    System.out.println("parent构造方法");
    }
    
    public class Test extends StaticDemo{
     static{
     System.out.println("child静态");
    }
    {
    System.out.println("child非静态");
    }
    Test(){
    System.out.println("child构造方法");
    }
    public static void main(String[] args){
    System.out.println("main");
    new Test();
    }
    }
    
    //result
    parent静态代码块
    child静态
    main
    parent非静态代码块
    parent构造方法
    child非静态
    child构造方法
    

    总结

    • 本文讲了Java入门第一行代码,如果您还有更好地理解,欢迎沟通
    • 定位:分享 Android&Java知识点,有兴趣可以继续关注
    展开全文
  • 第二行代码学习笔记之第一章

    千次阅读 2017-02-04 19:50:09
    第二行代码学习笔记之第一章写在前面的话最近买入了郭霖大神的第二行代码,准备系统的梳理一下自己的Android知识体系。因为之前都是项目中用到什么就学什么,比较分散,学的东西也是零散的。希望通过这次学习能够将...

    第二行代码学习笔记之第一章

    写在前面的话

    最近买入了郭霖大神的第二行代码,准备系统的梳理一下自己的Android知识体系。因为之前都是项目中用到什么就学什么,比较分散,学的东西也是零散的。希望通过这次学习能够将自己之前的知识串联起来,形成自己的一个知识体系。计划写这一个该书笔记的系列博客,一是为了督促自己每天抽出时间来学习,二也是为自己留一份资料,方便以后查阅复习。
    既然决定写博客就要尽力坚持下去,而且保证质量,让博客不仅仅是书中内容的摘抄,而是尽可能的加入自己的理解,写好每一个书中的Demo。接下来进入正文:

    第一章

    概要

    Android整体的介绍,开发环境的配置,Android Studio安装使用,Android Studio中项目结构, Android日志工具

    1、Android简介

    1 . 1、Android系统架构

    Android系统架构分为四层:
    (1) Linux内核层:
    Android系统基于Linux内核。
    为Android硬件设备提供底层驱动,例如显示驱动,音频驱动,照相机驱动等;
    (2)系统运行库层:
    通过C/C++库为Android系统提供特性支持。例如:SQLite库提供数据库支持,Webkit库提供浏览器内核支持。
    该层还有Android运行时库,提供核心库,允许用Java语言开发Android应用。Android运行时库还包含Dalvik虚拟机(5.0后是ART运行环境)。
    (3)应用框架层:
    提供各种API
    (4)应用层:
    手机中所有的应用程序,我们的开发就是在这一层

    1 . 2、Android版本

    Android至今为止已经发布到7.1版本,对应API版本为25。通常开发最低版本为4.0,对应API为15。

    1 . 3、Android应用开发特色

    Android系统为我们提供了那些东西,用来开发。
    (1) 四大组件(待详细补充)
    Activity(活动), Service(服务), BroadCast Receiver(广播接收者), Content Provider(内容提供者)

    (2)丰富的系统控件

    (3)SQLite数据库

    (4)强大的多媒体
    例如 音乐,视频,照相,录音,闹铃等

    (5)地理位置定位

    2、开发环境搭建

    2 . 1 需要的工具

    JDK:Java语言的软件开发工具包(包含Java的运行环境,工具集合,基础类库等内容)

    Android SDK:Android开发工具包

    Android Studio:Android编译器

    3、创建第一个Android项目

    3 . 1 项目目录结构解析

    项目目录结构

    (1) .gradle和.idea
    放置Android Studio自动生成的一些文件。
    (2) app
    项目中的代码,资源几乎都在这个目录下。
    (3) build
    包含项目编译时自动生成的文件
    (4) gradle(可能能解决长时间build gradle问题)
    包含gradle wrapper的配置文件
    使用gradle wrapper不需要提前将gradle下好,Android Studio会自动根据缓存情况决定是否需要联网下载。默认不启用gradle wrapper,可以通过File ——> Setting ——> Build , Execution , Deployment ——>Gradle进行配置更改,打开gradle wrapper。
    (5) .gitignore
    指定版本控制忽视文件
    (6) build.gradle
    项目全局的gradle构建脚本
    (7) gradle.properties
    全局的gradle配置文件,这里配置的属性影响项目中所有的gradle编译脚本
    (8) gradlew和gradlew.bat
    在命令行界面执行gradle命令
    gradlew Linux或Mac系统中使用
    gradlew.bat Windows系统中使用
    (9) xxx.iml
    所有IntelliJ IDEA项目中都会自动生成的文件,用来标识这是一个IntelliJ.IDEA项目。(Android Studio是基于 IntelliJ.IDEA开发的)
    (10) local.properties
    指定本机中SDK路径,通常自动生成
    (11)setting.gradle
    指定项目中所有引入的模块

    3 . 2 app目录下内容解析

    app目录结构

    (1) build
    编译时自动生成的文件
    (2) libs
    放置第三方jar包
    (3) androidTest
    编写Android Test测试用例,项目自动化测试的一种方式
    (4) java
    放置所有Java代码
    (5) res
    项目资源目录
    (6) AndroidManifest.xml
    项目配置文件
    (7) test
    编写Unit Test测试用例,项目自动化测试的另一种方式
    (8) .gitignore
    控制版本忽略文件
    (9) app.iml
    IntellJ自动生成的文件
    (10) build.gradle
    app模块的gradle构建脚本
    (11) proguard-rules.pro
    指定项目代码的混淆规则

    3 . 3 详解build.gradle文件

    Android Studio是采用Gradle构建项目的,Gradle是一个非常先进的项目构建工具。
    最外层builde.gradle文件

    buikd.gradle文件

    (1) repositories闭包
    jcenter():代码托管仓库,很多Android开源项目将代码托管到jcenter,声明这行配置后,可以方便的引用开源项目。
    (2) dependencies闭包
    使用classpath声明了一个Gradle插件。使用这个插件来让Gradle构建Android项目,因为Gradle并不是专门为构建Android项目来开发的,Java,C++等项目也可以用Gradle来构建。
    app目录下的build.gradle文件

    build.gradle文件

    (1) 第一行应用了一个插件
    一般有两种值可选:
    com.android.application一个应用程序模块
    com.android.library表示这是一个库模块
    (2) android闭包
    配置项目的各种属性
    compileSdkVersion:用于指定项目的编译版本
    buildToolsVersion:用于指定项目构建工具版本
    (3) defaultConfig闭包
    applicationId:指定项目包名
    minSdkVersion:最低兼容版本
    targetSdkVersion:表示已经在该目标版本做过充分的测试,系统会为你启用该版本最新的功能和特性
    versionCode:项目版本号
    versionName:项目版本名
    (4) buildTypes闭包
    一般有两个子闭包debug和release,通过Android Studio直接运行项目生成的都是测试版安装文件
    debug:生成测试版安装文件的配置,可以不写
    release:生成正式版安装文件的配置
    minifyEnabled:代码混淆
    ProguardFiles:指定混淆时使用的规则文件
    (5) dependencies :
    指定当前项目的所有依赖关系。一共有三种依赖方式本地依赖,远程依赖,库依赖
    compile fileTree:本地依赖声明,将libs下所有jar.后缀文件都添加到项目的构建路径中
    compile com.android.support:appcompat-v7:24.2.1:远程依赖声明com.android.support是域名部分,与其他公司的库做区分。appcompat-v7是组名称,与同公司不同库做区分。24.2.1是版本号与同一个库不同版本做区分。
    Gradle构建项目时会首先检查本地是否已经有这个库的缓存,如果没有会自动联网去下载,然后添加到项目的构建路径当中。

    注意:
    曾经遇到过项目在Android5.0以下设备中不能运行的问题,后来是在defaultConfig中加入: multiDexEnabled true就可以了。(貌似是65K问题,网上也没有合适的答案,不过目前能解决这个问题就好啦)

    4、Android日志工具——Log

    4 . 1 为什么用Log不用System.out

    Log可以打印时间,可以添加过滤器,日志有级别区分
    Log级别:
    Log.v() verbose 所有信息,较为琐碎
    Log.d() debug 调试信息
    Log.i() info 较为重要的信息
    Log.w() warning 警告信息
    Log.e() error 错误信息
    Log 的特性是为了让开发者能够快速锁定自己所需要的日志信息

    5、Android Studio使用小技巧,快捷键

    5 . 1 快速生成Log方法

    直接输入 logv 按 Tab 键快速生成 Log.v() 方法。同理生成 Log.d()等方法。
    直接输入 logt 按 Tab 键快速生成 “TAG”。

    5 . 2 运行程序快捷键

    Shift + F10

    展开全文
  • 第一行代码第二版目录

    千次阅读 2018-02-13 17:27:04
    第一行代码第二版目录 本文说明:为了让安卓工程师扫盲、回忆过去 第1章 开始启程——你的第一行Android代码 1 1.1 了解全貌——Android王国简介 2 1.1.1 Android系统架构 2 1.1.2 Android已发布的...
  • 第一行代码 第二版pdf及源码(分享)

    万次阅读 多人点赞 2018-08-31 01:16:53
    这里写链接内容
  • 第二行代码》学习笔记

    千次阅读 2018-08-20 13:18:23
    楼主自序:学生党一枚,没啥上进心,学习不努力所以来到西南某三 线城市一所流高校,(悔恨呀,当初学习为啥不努力),大二转专业后才开始慢慢的接触,IT这一,(以前最多就会用电脑玩纸牌接龙),转专业之后开始学习...
  • 行代码》从出版到现在已经有两年多的时间了。当然,如果是从我开始写书的那天算起的话,时隔已经三年半之久了。回顾这三年半的时光,不得不感慨,Android 技术的发展真是日新月异。 记得在2013年我刚开始...
  • 郭霖大神的《第一行代码》、《第二行代码》可谓我的启蒙书。这几天特地把酷欧天气实现一遍,感受颇深。 以下为酷欧天气开发笔记,其涉及到的开源框架有: litepal(数据库操作) okhttp (网络传输) ...
  • 用三个月的时间断断续续终于拜读完郭霖大神的《第一行代码——第二版》,从一个hello world的菜鸟,跟随书中一步一个脚印,到如今对android能有一个大概的理解。现在回过头看,那些曾经陌生的变得有些熟悉了,而...
  • 最近在看Android 第一行代码-第二版书籍,整理下这本书的具体内容,内容如下:
  • 行代码》读书笔记(

    千次阅读 2020-03-14 20:34:48
    行代码》读书笔记()《行代码》读书笔记()5.2 开机广播不响应问题6.2 Android Device Monitor找不到使用旧有的monitor使用新添加的工具LitePal依赖6.5 DataSupport类DataSupport类找不到deleteAll...
  • 行代码2版)读书笔记
  • Android 行代码(2版) 下载地址:https://pan.baidu.com/s/1-lsdqIViw20fC566SV-XPQ 提取码:dhyx
  • 最近学习了郭神的第二行代码,但是感觉学的知识比较多,我这个人记忆力比较差,前面学的都忘的差不多了,所以决定在继续学习的同时总结前面的知识点,以此来增加记忆,也方便以后查询,这篇文章也作为跳转用。
  • 第二行代码读书总结加笔记

    千次阅读 2017-05-04 15:38:01
    一次写博客,希望大家多多支持,我会坚持写下去,希望大家多多支持;做一个传播Android开源精神的年轻人O(∩_∩)O哈哈~
  • 我的新书,《行代码 Android 第3版》已出版!

    万次阅读 多人点赞 2020-04-02 10:13:08
    《第一行代码——Android》这...在2016年的时候,我曾对书中的内容进行了大幅度的更新,出版了这本书的第2版,也就是所谓的《第二行代码》。而如今,再隔4年之久之后,《第三行代码》终于要以全新的面貌跟大家见面了。
  • 第一行代码第二版)第一章主要介绍了Android系统架构、重要版本、应用开发特色以及详细讲解了如何创建第一个Android项目和如何创建模拟器,还详细讲解了AndroidStudio项目下比较重要的目录结构知识以及如何使用...
  • @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate: "); setContentView(R.layout.activity_main); if(savedInstanceState !...
  • Github地址: https://github.com/newcaoguo/booksource 转载于:https://www.cnblogs.com/newcaoguo/p/6160102.html
  • 第一行代码第二版电子当

    千次阅读 2019-05-09 12:47:20
    链接:https://pan.baidu.com/s/1nkDvfoBbO8tegZeNpeW_MQ 提取码:qvfh 复制这段内容后打开百度网盘手机App,操作更方便哦
  • 第一行代码(Android)第二版PDF和源码

    万次阅读 多人点赞 2019-01-22 14:34:34
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定...行代码(...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,162
精华内容 8,864
关键字:

第二行代码