精华内容
下载资源
问答
  • 行代码资源.zip

    2021-02-03 23:41:15
    自己整理的行代码的资源
  • 行代码Android学习练习代码3
  • 行代码.pdf

    2016-12-03 11:24:19
    适合初学者,简单易懂
  • 郭霖行代码PDF

    2016-03-14 18:27:56
    很好不错
  • 郭霖大婶的最新出版书《行代码》(二版),又称行代码。文件里面是书的目录和源码。
  • 行代码Android(word+pdf全书) 包含: 行代码——Android(全书).doc 行代码——Android(全书).pdf
  • 非常好的android入门学习材料,非常高清
  • 高清版PDF,行代码的源码,但是请有能力的朋友购买正版书籍
  • 行代码--Android全书.doc格式,入门学习必备,需要的下载吧!
  • Android行代码PDF

    2016-08-27 13:42:07
    Android行代码PDF
  • 一章 开始启程,你的Android代码1.1.Android简介 1.1.1.Android系统架构 自下而上:Linux内核层(为硬件提供底层驱动。eg:显示驱动、音频驱动等)、系统运行时层(C/C++库和android运行时库,前者有Sqlite...

    1.1.Android简介
    1.1.1.Android系统架构

           自下而上:Linux内核层(为硬件提供底层驱动。eg:显示驱动、音频驱动等)、系统运行时层(C/C++库和android运行时库,前者有Sqlite和OpenGL等,后者有ART虚拟机和核心库等)、应用框架层(系统API,譬如ActivityManager、WindowManager、ContentProvider)、应用层(应用程序,譬如联系人、短信、自己开发的app等)。
           2020.3月逐渐推出Android 11版本。5.0使用ART虚拟机代替DVM虚拟机,提出Material Design来优化界面设计,5.0以上占比超过85%。
    1.1.2.Android应用开发特色
         (1)四大组件:Activity、Service、BroadcastReceiver、ContentProvider。Activity是应用程序显示的界面;Service后台默默运行,即使用户退出app;BroadcastReceiver使得app接受各处广播消息,也可以向外发出消息;ContentProvider可以使得app之间的数据共享。譬如:读取联系人;
        (2)丰富系统控件:Android界面系统控件和自定义控件。
        (3)SQLite数据库:轻量级、运算速度极快的嵌入式关系型数据库。支持SQL语法和系统API。
        (4)强大多媒体:音乐、视频、录音、拍照等。
    1.2.搭建开发环境
           JDK(java运行环境、工具集合、基础类库)+SDK(android开发工具包)+Android studio
    1.3.创建Android项目
    1.3.1.文件结构解析


    1.build:编译自动生成的文件
    2.gradle:gradle wrapper配置文件
    3..gitignore:哪些文件排除在版本控制之外
    4.Build.gradle:项目全局gradle脚本
    5.Grale.properties:全局gradle配置文件,配置相关属性
    6.gradlew和gradlew.bat:命令行界面执行gradle命令
    7.Local.properties:本机SDK路径
    8.Setting.gradle:制定项目所有引入的模块,目前只有app模块
    9.app目录:项目代码、资源
       9.1.build:系统自动生成文件
       9.2.libs:第三方jar包
       9.3.androiTest:Android test自动化测试用例
       9.4.Java:所有java代码放置地方,MainActivity.java
       9.5.res:图片、布局、字符串等
       9.6.AndroidManifest.xml:项目配置文件,譬如四大组件的定义
       9.7.Test:unit test自动化测试用例
       9.8.Build.gradle:app模块的gradle构建样本,项目构建相关配置
       9.9.Progurad-reles.pro:执行项目混淆规则
    10.res目录:图片、布局、字符串等


      10.1.drawable:图片
      10.2.Mipmap:图标(不同后缀更好兼容设备)
      10.3.Vaules:字符串、样式、颜色等。以下为values的内容


         通过R.string.app_name或者@string/app_name获得该字符串的引用。
    1.3.2.详解build.gradle文件
         最外层目录的build.gradle

    //Gradle是基于Groovy领域特定语言(DSL)来进行项目设置的。
    buildscript {
        ext.kotlin_version = '1.3.71'
        //闭包声明了两个代码仓库
        repositories {
            google() //google扩展依赖库
            jcenter()//第三方开源库
    
        }
        //使用classpath声明了两个插件
        dependencies {
            //Gradle插件的目的是构建android项目,与AS版本一致
            classpath 'com.android.tools.build:gradle:3.6.3'
            //Kotlin插件
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }

         app目录的build.gradle

    apply plugin: 'com.android.application'//应用程序模块,也可以设置为库模块
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'//kotlin模块和扩展功能
    //项目构建的各个属性
    android {
        compileSdkVersion 28  //指定项目编译版本
        buildToolsVersion "29.0.3"  //Android10.0SDK编译
        //项目更多细节配置
        defaultConfig {
            applicationId "com.example.myapplication"//应用唯一标识符
            minSdkVersion 21///项目最低兼容版本,最低兼容5.0
            targetSdkVersion 28//目标版本,在该版本充分测试,启用新特性,9.0
            versionCode 1 //项目版本号
            versionName "1.0"//项目版本名
            //启用Junit测试用例
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
        //生成安装文件的相关配置
        buildTypes {
        //一般一个release包(正式版安装文件配置),一个debug包(测试版安装文件配置)。
            release {
                minifyEnabled false//是否对项目混淆
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
                //选择混淆规则
            }
        }
    
    }
    //指定项目所有依赖关系。本地依赖(jar包或者目录)、库依赖(项目中的库模块)和远程依赖(jcenter仓库开源项目)。
    dependencies {
        //implementation fileTree本地依赖,libs目录底下的所有jar包  
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        //implementation远程依赖声明,标准远程库格式,androidx.appcompat:为域名部分,appcompat为工程名,1.0.2是版本号
        //Gradle构建时会检查本地是否有库缓存,没有会自动联网下载并添加到项目构建路径
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation 'androidx.appcompat:appcompat:1.0.2'
        implementation 'androidx.core:core-ktx:1.0.2'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        //implementation project是库依赖,譬如一个库名叫help,可以声明为(implementation project('help'))
        //声明测试用例库的
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test.ext:junit:1.1.1'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    }

    1.4.日志工具
           Android中日志工具类是log。五个级别:log.v(verbose,琐碎的、意义最小的信息)、log.d(debug,调试信息)、log.i(info,重要信息,譬如分析用户数据行为信息)、log.w(warn,警告信息,潜在风险需要修复)、log.e(error,错误信息)。譬如:Log.d("MainActivity1","onCreate Create")。一个tag是传入当前类名,一个msg是打印具体内容。打印内容包括时间、进程号、类名和内容等。Logv可以看所有log信息。Logd可以看debug及以上级别的信息,依次类推。
          System.out.println相较于log,日志开关不可控、没有级别划分、不能添加日志标签。有四个过滤器。Show only selected applications显示当前选中程序的日志;firebase是开发者工具和基础架构平台,不用管。No filter没有过滤器,所有日志都会显示;edit fileter config自定义过滤器。

             

    展开全文
  • 行代码pdf及源码 郭霖,推荐初学者的书及源码
  • 行代码——Android》是Android初学者的最佳入门书。全书由浅入深、系统全面地讲解了Android软件开发的方方面面。1章带领你搭建Android开发环境,完成你的一个Android程序。2章至13章完整地讲解了...
  • 使用Kotlin对《行代码:Android》——郭霖,重写了最后的实践”酷欧天气
  • 我的新书,《行代码 Android 第3版》已出版!

    万次阅读 多人点赞 2020-04-02 10:13:08
    《第一行代码——Android》这本书自2014年出版以来,已经过了6个年头了。期间Android系统版本经历了4.0到10.0系统的巨大升级,开发技术也...而如今,再隔4年之久之后,《第三行代码》终于要以全新的面貌跟大家见面了。

    《第一行代码——Android》这本书自2014年出版以来,已经过去了6个年头。期间Android系统版本经历了4.0到10.0系统的巨大升级,开发技术也发生了翻天覆地的变化。在2016年的时候,我曾对书中的内容进行了大幅度的更新,出版了这本书的第2版,也就是所谓的《第二行代码》。而如今,再隔4年之久之后,《第三行代码》终于要以全新的面貌跟大家见面了。

    创作

    不得不说,《第一行代码 第3版》这本书,在出版的过程中经历了太多坎坷,以至于到今天才能跟大家见面。这里先跟所有的读者朋友们说声:对不起,让你们久等了!

    早在2017年,Google在I/O大会上宣布Kotlin将成为Android系统的一级开发语言,从此与Java平起平坐。那时我就猜想到,在Android应用层的开发语言将掀起一场大淘汰式的替换。当时图灵出版社也看到了这个新闻,图灵的编辑很快就联系我,问我准不准备写一本Kotlin方面的书?

    我认为掌握一门语言是需要时间沉淀的,学语法可能两周就能搞定,但要想体会到精髓,则需要不断通过写代码去磨练和提升。那个时候我不认为我具有写好这样一本书的能力,所以也就没有答应。

    长期关注我的朋友应该知道,在这之后的一年多时间里,我把时间基本都放在了GifFun这个开源项目上面。这个项目一开始是使用Java来写的,中途被我切换成了Kotlin。因为我知道,要想熟练掌握一门语言,最好的方式就是不断用它来写代码。我也就借此机会,对Kotlin有了更加深刻的理解。

    到了2019年,我和出版社又重新进行了商讨,准备对《第一行代码》再度更新,推出第3版,这次会将全书的代码都改用Kotlin来实现。但问题在于,Kotlin作为一门新兴语言,程序员基数远不可能有Java那样庞大。如果换了语言之后导致大量读者看不懂怎么办?

    当时出版社提出了一个方案,让我单独再写一本专门讲解Kotlin语言的书,和《第一行代码》配套使用。不过我认为这个方案会提升《第一行代码 第3版》的阅读门槛,就没有答应。

    几经思考之后,我认为想出了一个最佳的写作方案:在一本书里面同时讲解Android和Kotlin这两门技术。这也将会是《第一行代码》中首次引入编程语言的讲解。

    但如何安排这两门技术之间的内容顺序是一件非常有挑战的事情。因为Kotlin是Android程序的开发语言,很显然需要先掌握语言才能开发Android程序。可是如果先花小半本书的篇幅讲解Kotlin,然后再开始学习Android开发,这种学习方式一定非常枯燥,因为学编程语言最怕的就是光学不练。

    为此,我决定采用一种或许别人从未尝试过的方式,将Kotlin和Android穿插在一起讲解。首先使用一个快速入门章节介绍Kotlin的基础知识,然后利用已掌握的知识开始学习Android开发,这样可以做到立刻上手实践。之后的每一章当中,都会结合相当章节的Android内容再学习一些Kotlin的进阶知识,等学完整本书之后,你就能同时熟练地掌握Android和Kotlin这两门技术了。

    这种穿插讲解的方式非常考验我的内容设计能力,因为每章的Android开发中用到的Kotlin知识不能过于超前,不然读者会出现看不懂的情况。同时每章讲解的Kotlin知识又要结合着相应章节的Android知识,这样才能更好地理解该知识点的用法与场景。它们之间的内容是相辅相成的。

    为此,在前期制订目录上面我就花了将近一个月的时间,之后编写Kotlin快速入门这一章又花了两个多月的时间。因为我以前从来没有写过编程语言类的书,为了把Kotlin重要的基础知识在这一章里面都体现出来,我花费了很多心思。在编写这一章的过程中,Google I/O 2019大会上正式宣布了Kotlin First的口号,Kotlin已经不再和Java是平起平坐,而是变成一等公民了。虽然这是我意料之中的事情,但是比我预期来得要早,也让我更加坚定了写好这本书的信心。

    《第一行代码 第2版》是2016年3月份开始动笔的,同年9月份完稿,12月份出版。《第一行代码 第3版》是2019年3月份开始动笔的,但是9月份却远远无法完稿,因为改动内容和新增内容要远比第2版时大得多。我几乎把所有的业余时间都放在了上面,最终在11月底才勉强全书完稿。

    本来是想着好事多磨,好书也不怕晚出版几个月,过完年应该就可以跟大家见面了。没想到,我们恰好碰上了一场从未遇到过的疫情灾难,包括17年前的SARS也没有今天的新冠疫情严重。

    这场疫情导致中国各方面都受到了极大的创伤,学校停课,企业停工,大家都只能呆在家里,不出门就是最安全的。而受疫情的影响,出版社、印刷厂都延迟上班,无法复工。我每天在公众号中都会被读者追问,新书到底什么时候可以出版?这个问题我当时真的无法回答,疫情所带来的影响要持续到何时真的没人知道。

    后来到了三月份,国内的疫情已经逐渐控制住,多数企业也在慢慢复工复产了,这本书才终于能够得以出版印刷。但是,虽然国内的疫情已经缓和,海外疫情却紧接着爆发了起来,截至到我写本篇文章时也没有任何缓和的迹象。现在仍然不知道这场疫情给全球带来的影响要持续到何时,我真心希望你在阅读这篇文章时,新冠已经成为了过去式,每个人都恢复到了正常的生活当中。

    经过了如此多磨难才诞生的这本书,希望能给大家送去更多的知识吧。

    变化

    我相信一定会有很多读者朋友都想问一个问题:《第一行代码 第3版》相比于《第一行代码 第2版》具体有哪些变化呢?在这里我就向大家详细地介绍一下主要的变化部分。

    首先是编程语言上的改变,本书前两版都是使用Java作为应用程序的编程语言,而第3版使用了Kotlin,这也是目前Google最推荐我们使用的编程语言。

    本书的前两版中也没有涉及过语言方面的讲解,默认读者是有Java语言基础的。而第3版中对Kotlin语言进行了非常全面的讲解,不需要读者有任何Kotlin语言的基础。

    另外你需要知道,《第一行代码 第3版》是一本升级版的书,而不是一本全新的书,因此书中整体的知识架构仍然和《第一行代码 第2版》是保持一致的。

    虽然整体知识架构不变,但还是涉及了一些章节上的变动。

    第3版中移除了之前第2版中的11、15两章内容。这两章内容分别讲解的是LBS开发、以及App上架。

    LBS开发其实主要讲解的都是百度地图SDK的用法,但是百度地图SDK很可能会频繁更新,而书中的内容却是不能随意改变的,所以我认为这部分内容更应该去百度地图的开发者官网进行学习。

    至于App上架主要讲解的是360应用商店的上架过程,由于现在国内的App上架已经变得非常复杂,个人开发者都需要专门去申请软件著作权才能将自己开发的App上架到应用商店,书中的内容已经不再适用,所以也进行了移除。

    而第3版中新增了三章内容,分别是第2章、第13章和第16章。

    第2章就是之前提到的Kotlin快速入门章节,这一章将会带你迅速上手Kotlin编程,讲解了如变量、函数、逻辑控制、面向对象编程、Lambda编程、空指针检查等Kotlin中最基础、同时也是最核心的知识点。学完了这一章内容之后,你就可以使用Kotlin来编写一些Android程序了。

    第13章是专门讲解Jetpack的一个章节。Jetpack是Google于近年推出的一个开发组件工具集,旨在帮助我们编写出更加符合高质量代码规范、更加具有架构设计的应用程序。是的,现在我们已经不能停留在实现功能就万事大吉的层面了,而是要在实现功能的同时,追求更高的代码质量和架构设计。第13章中讲解了ViewModel、Lifecycles、LiveData、Room、WorkManager等内容,基本涵盖了Jetpack架构模块当中最主要的一些组件。

    第16章是第3版中新补充的一个实战章节。本书的前两版中都只有一个实战章节,而第3版中会有两个实战章节。不同于过去的App开发实战,第16章会带你一起编写并发布一个开源库。因为我之前也写过几个比较知名的开源项目,并且我在公司的主要工作就是SDK方面的研发,所以其实我很擅长写这部分内容。还有什么事情是比在别人的项目中看到引用了自己的开源库更让人激动的呢?

    介绍完了整体章节上的变动,我们再来看一些具体内容上的变化。

    为了响应Google的Kotlin First号召,第3版中将全书所有的代码都改成了使用Kotlin语言来进行实现,Android的持续Kotlin化也是未来长期发展的必然趋势。不过,由于新增的第2章只是讲解了一些Kotlin的基础内容,为了能够让你更加全面地掌握Kotlin方方面面的知识,第3版几乎在每一章的最后都加入了一个Kotlin课堂的环节。全书一共有12节Kotlin课堂,全面涵盖了诸如常用技巧、高阶函数、泛型、协程、DSL等等语言层面的知识,绝对足以让你熟练掌握Kotlin这门语言了。

    除了在编程语言方面存在大量的变动之外,Android开发方面当然也不会一成不变。自《第一行代码 第2版》出版之后,Android又经历了8 9 10系统的快速迭代。每个新系统版本中都会增加一些崭新的特性,也都需要进行一些开发方面的适配,第3版将这些内容全部涵盖了进去。

    另外,近些年来追求架构设计的开发者越来越多,类似MVP、MVVM等架构的使用也越来越广泛,传统的MVC架构逐渐在被抛弃。第3版的第15章中对MVVM架构进行了非常详细的讲解,并且配合着Google提供的Jetpack组件,最终完成了一个MVVM架构的天气预报程序。虽然这个天气预报程序我已经写了3版了,但是这次将会是最具架构性,也最符合高质量编码规范的版本。相信会对你未来开发公司的实际项目带来很大的帮助。

    除了上述主要变化之外,还有许多小细节方面的变动这里就不一一列举了,等待你自己阅读的时候发现吧。

    设计

    虽说这是一本升级版的书,可我花费在上面的时间和精力丝毫不亚于写一本新书。所以,不管是在内容方面还是在设计方面,我都希望它和第2版能够有着更加明显的区别。因此,图灵的设计师们这次也辛苦了。

    首先是封面的设计,和第2版时一样,这次第3版的封面也是由图灵的设计师做出了几个版本,然后我在公众号上发起了一个投票,让广大读者朋友们共同选出最满意封面,投票结果如下:

    最后蓝色封面以压倒性的优势当选,《第一行代码》也终于把红绿蓝这三元色全部凑齐了。第3版的封面正式确定:

    然后是书签,第2版中首次在书里附赠了书签,那么第3版当然会把这个好传统继续坚持下去了。书签的设计应该尽可能地展现出一本书的特点,而我认为《第一行代码 第3版》最大的特点就是两部分:Android 10和Kotlin。所以我也让设计师专门为这两个主题设计了两种书签,我们来一起欣赏一下吧:

         

    每本书中都会赠送这两个书签,虽然一本书送两个书签可能有点多余,但我觉得这会给人一种更加完整的感觉。

    除此之外,第3版中还首次提供了全书知识架构的思维导图。这是我根据书中主要知识点进行整理,并由本书编辑张霞绘制出来的,共分为Android和Kotlin两张图。

    思维导图可以方便你纵览本书Android和Kotlin的宏观图景,帮助你梳理各章的知识要点。

    Android的思维导图如下:

    Kotlin的思维导图如下:

    这两张思维导图都会以彩页的形式装订在书中,方便你随时查看。

    最后是给高校老师们的福音,由于本书前两版被大量高校当作教材使用,这次为了便于高校老师和培训机构教学,第3版中专门配备了相应的PPT课件。在书中的前言部分附有所有随书资源的下载地址。

    定价

    我之前发现有部分读者朋友对书的定价方式是有误解的,所以这里先来科普一下。

    任何一本书,都是要以成本为依据来定价的,而不是内容。成本指的主要是这本书印刷所需花费的费用,所以页数多的书一定比页数少的书贵,彩色页的书一定比黑白页的书贵。

    在我之前的一篇文章中,有些读者留言,认为一本书应该是根据内容的好坏来定价,其实这是不可能的。也许会存在一些好书因为口碑特别好而提高定价,但一定不会存在一本差书因为自我感觉内容比较差而主动降低定价。

    由于《第一行代码 第3版》新增了许多Kotlin方面的知识讲解,书的总页数也从第2版时的500多页变成了现在的700多页,所以涨价是在所难免的事情。

    一开始本书编辑张霞建议将第3版售价定为99元,我觉得相比于第2版的79元涨幅有点高,问她可不可以降低到89元。她告诉我,700多页的书定价89元有很大概率会被出版社打回,但她仍然以这个价格上报了试试。果不其然,最终这个定价审核没有通过,因为市面上700多页的书定价都至少在100元以上。

    最终我也做出了让步,同意将第3版定价为99元,至少控制在了百元以内。不过这仅仅只是书的定价,而通常我们在网上买书都是有折扣的。具体折扣的多少由各网店自己决定,我参与不了,但一般也就是七八十块钱就能买到了。

    购买

    了解了这么多,不知道你有没有决定要买一本呢?目前《第一行代码 第3版》已经在京东、当当等网上书店开启预售了,限量签名版先到先得,有需要的小伙伴们请点击下面的链接。另外全书的完整目录,也可以到下面的链接页面进行查看。

    京东购买地址

    当当购买地址

    天猫购买地址


    关注我的技术公众号,每天都有优质技术文章推送。

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

    展开全文
  • 《第一行代码第三版》总结篇

    千次阅读 多人点赞 2020-05-02 18:05:16
    今年4月郭霖大佬出版了新书《第一行代码第三版,与前几版不同的是以下几点:(1)编程语言基于Kotlin;(2)基于Android10.0开发;(3)提到JetPack、Retrofit、MVVM等全新的知识点。一方面学校因为疫情原因迟迟不...

           今年4月郭霖大佬出版了新书《第一行代码》第三版,与前几版不同的是以下几点:(1)编程语言基于Kotlin;(2)基于Android10.0开发;(3)提到JetPack、Retrofit、MVVM等全新的知识点。一方面学校因为疫情原因迟迟不开学,另一方面大论文已经提交。有幸拿到签名版的书后,开始利用这段时间尽快学习、总结。笔记链接如下:

          我的第一行Android代码(一)

          Kotlin编程入门上篇(二)

          Kotlin编程入门下篇(三)

          探究Activity(四)

          UI开发入门(五)

          探究Fragment(六)

          详解广播机制(七)

          数据存储方案(八)

          探究ContentProvider(九)

          通知、多媒体(十)

          编写开源库(十九)

    展开全文
  • 行代码电子版,附带书签,供android初学者体验学习
  • 第3版基于Android 10.0对2版进行了全面更新,不仅将所有知识点都在Android 10.0系统上进行了重新适配,同时加入Kotlin语言的全面讲解,使用Kotlin对全书代码进行重写,而且还介绍了最新系统特性以及Jetpack架构...

    出版年: 2020-4

    简介:
    本书被Android开发者广为推荐。全书系统全面、循序渐进地介绍了Android软件开发的必备知识、经验和技巧。

    第3版基于Android 10.0对第2版进行了全面更新,不仅将所有知识点都在Android 10.0系统上进行了重新适配,同时加入Kotlin语言的全面讲解,使用Kotlin对全书代码进行重写,而且还介绍了最新系统特性以及Jetpack架构组件的使用,使本书更加实用。

    本书内容通俗易懂,由浅入深,既是Android初学者的入门必备,也是Android开发者的进阶首选。

    豆瓣

    第1章 开始启程——你的第 一行Android代码 1

    1.1 了解全貌,Android王国简介 2
    1.1.1 Android系统架构 2
    1.1.2 Android已发布的版本 3
    1.1.3 Android应用开发特色 4
    1.2 手把手带你搭建开发环境 5
    1.2.1 准备所需要的工具 5
    1.2.2 搭建开发环境 5
    1.3 创建你的第 一个Android项目 9
    1.3.1 创建HelloWorld项目 9
    1.3.2 启动模拟器 11
    1.3.3 运行HelloWorld 14
    1.3.4 分析你的第 一个Android程序 15
    1.3.5 详解项目中的资源 20
    1.3.6 详解build.gradle文件 22
    1.4 前行必备:掌握日志工具的使用 25
    1.4.1 使用Android的日志工具Log 25
    1.4.2 为什么使用Log而不使用println() 26
    1.5 小结与点评 28

    第2章 探究新语言,快速入门Kotlin编程 30

    2.1 Kotlin语言简介 31
    2.2 如何运行Kotlin代码 32
    2.3 编程之本:变量和函数 35
    2.3.1 变量 35
    2.3.2 函数 37
    2.4 程序的逻辑控制 41
    2.4.1 if条件语句 41
    2.4.2 when条件语句 42
    2.4.3 循环语句 45
    2.5 面向对象编程 48
    2.5.1 类与对象 49
    2.5.2 继承与构造函数 50
    2.5.3 接口 55
    2.5.4 数据类与单例类 58
    2.6 Lambda编程 61
    2.6.1 集合的创建与遍历 61
    2.6.2 集合的函数式API 65
    2.6.3 Java函数式API的使用 69
    2.7 空指针检查 71
    2.7.1 可空类型系统 72
    2.7.2 判空辅助工具 73
    2.8 Kotlin中的小魔术 77
    2.8.1 字符串内嵌表达式 77
    2.8.2 函数的参数默认值 78
    2.9 小结与点评 81

    第3章 先从看得到的入手,探究

    Activity 82
    3.1 Activity是什么 82
    3.2 Activity的基本用法 82
    3.2.1 手动创建Activity 83
    3.2.2 创建和加载布局 85
    3.2.3 在AndroidManifest文件中
    注册 88
    3.2.4 在Activity中使用Toast 90
    3.2.5 在Activity中使用Menu 92
    3.2.6 销毁一个Activity 96
    3.3 使用Intent在Activity之间穿梭 96
    3.3.1 使用显式Intent 96
    3.3.2 使用隐式Intent 99
    3.3.3 更多隐式Intent的用法 101
    3.3.4 向下一个Activity传递数据 105
    3.3.5 返回数据给上一个Activity 106
    3.4 Activity的生命周期 108
    3.4.1 返回栈 108
    3.4.2 Activity状态 109
    3.4.3 Activity的生存期 110
    3.4.4 体验Activity的生命周期 111
    3.4.5 Activity被回收了怎么办 117
    3.5 Activity的启动模式 118
    3.5.1 standard 119
    3.5.2 singleTop 120
    3.5.3 singleTask 122
    3.5.4 singleInstance 123
    3.6 Activity的最佳实践 126
    3.6.1 知晓当前是在哪一个Activity 126
    3.6.2 随时随地退出程序 127
    3.6.3 启动Activity的最佳写法 129
    3.7 Kotlin课堂:标准函数和静态方法 130
    3.7.1 标准函数with、run和apply 130
    3.7.2 定义静态方法 133
    3.8 小结与点评 137

    第4章 软件也要拼脸蛋,UI开发的 点点滴滴 138

    4.1 该如何编写程序界面 138
    4.2 常用控件的使用方法 139
    4.2.1 TextView 139
    4.2.2 Button 142
    4.2.3 EditText 144
    4.2.4 ImageView 149
    4.2.5 ProgressBar 151
    4.2.6 AlertDialog 154
    4.3 详解3种基本布局 156
    4.3.1 LinearLayout 156
    4.3.2 RelativeLayout 163
    4.3.3 FrameLayout 166
    4.4 系统控件不够用?创建自定义控件 169
    4.4.1 引入布局 169
    4.4.2 创建自定义控件 172
    4.5 最常用和最难用的控件:ListView 174
    4.5.1 ListView的简单用法 174
    4.5.2 定制ListView的界面 176
    4.5.3 提升ListView的运行效率 179
    4.5.4 ListView的点击事件 180
    4.6 更强大的滚动控件:RecyclerView 182
    4.6.1 RecyclerView的基本用法 183
    4.6.2 实现横向滚动和瀑布流布局 186
    4.6.3 RecyclerView的点击事件 191
    4.7 编写界面的最佳实践 193
    4.7.1 制作9-Patch图片 193
    4.7.2 编写精美的聊天界面 196
    4.8 Kotlin课堂:延迟初始化和密封类 201
    4.8.1 对变量延迟初始化 201
    4.8.2 使用密封类优化代码 204
    4.9 小结与点评 206

    第5章 手机平板要兼顾,探究 Fragment 207

    5.1 Fragment是什么 207
    5.2 Fragment的使用方式 209
    5.2.1 Fragment的简单用法 210
    5.2.2 动态添加Fragment 212
    5.2.3 在Fragment中实现返回栈 215
    5.2.4 Fragment和Activity之间的
    交互 216
    5.3 Fragment的生命周期 217
    5.3.1 Fragment的状态和回调 217
    5.3.2 体验Fragment的生命周期 219
    5.4 动态加载布局的技巧 221
    5.4.1 使用限定符 221
    5.4.2 使用最小宽度限定符 224
    5.5 Fragment的最佳实践:一个简易
    版的新闻应用 225
    5.6 Kotlin课堂:扩展函数和运算符
    重载 234
    5.6.1 大有用途的扩展函数 234
    5.6.2 有趣的运算符重载 236
    5.7 小结与点评 240

    第6章 全局大喇叭,详解广播机制 242

    6.1 广播机制简介 242
    6.2 接收系统广播 243
    6.2.1 动态注册监听时间变化 243
    6.2.2 静态注册实现开机启动 245
    6.3 发送自定义广播 249
    6.3.1 发送标准广播 249
    6.3.2 发送有序广播 252
    6.4 广播的最佳实践:实现强制下线功能 255
    6.5 Kotlin课堂:高阶函数详解 261
    6.5.1 定义高阶函数 261
    6.5.2 内联函数的作用 265
    6.5.3 noinline与crossinline 268
    6.6 Git时间:初识版本控制工具 271
    6.6.1 安装Git 271
    6.6.2 创建代码仓库 272
    6.6.3 提交本地代码 274
    6.7 小结与点评 274

    第7章 数据存储全方案,详解 持久化技术 275

    7.1 持久化技术简介 275
    7.2 文件存储 276
    7.2.1 将数据存储到文件中 276
    7.2.2 从文件中读取数据 279
    7.3 SharedPreferences存储 281
    7.3.1 将数据存储到SharedPre-
    ferences中 282
    7.3.2 从SharedPreferences中读取
    数据 284
    7.3.3 实现记住密码功能 285
    7.4 SQLite数据库存储 288
    7.4.1 创建数据库 289
    7.4.2 升级数据库 295
    7.4.3 添加数据 297
    7.4.4 更新数据 300
    7.4.5 删除数据 302
    7.4.6 查询数据 304
    7.4.7 使用SQL操作数据库 307
    7.5 SQLite数据库的最佳实践 307
    7.5.1 使用事务 308
    7.5.2 升级数据库的最佳写法 309
    7.6 Kotlin课堂:高阶函数的应用 312
    7.6.1 简化SharedPreferences的用法 312
    7.6.2 简化ContentValues的用法 314
    7.7 小结与点评 317

    第8章 跨程序共享数据,探究ContentProvider 318

    8.1 ContentProvider简介 318
    8.2 运行时权限 319
    8.2.1 Android权限机制详解 319
    8.2.2 在程序运行时申请权限 322
    8.3 访问其他程序中的数据 326
    8.3.1 ContentResolver的基本用法 326
    8.3.2 读取系统联系人 329
    8.4 创建自己的ContentProvider 332
    8.4.1 创建ContentProvider的步骤 332
    8.4.2 实现跨程序数据共享 336
    8.5 Kotlin课堂:泛型和委托 345
    8.5.1 泛型的基本用法 345
    8.5.2 类委托和委托属性 347
    8.5.3 实现一个自己的lazy函数 350
    8.6 小结与点评 352

    第9章 丰富你的程序,运用手机 多媒体 353

    9.1 将程序运行到手机上 353
    9.2 使用通知 355
    9.2.1 创建通知渠道 355
    9.2.2 通知的基本用法 357
    9.2.3 通知的进阶技巧 362
    9.3 调用摄像头和相册 367
    9.3.1 调用摄像头拍照 367
    9.3.2 从相册中选择图片 371
    9.4 播放多媒体文件 374
    9.4.1 播放音频 374
    9.4.2 播放视频 377
    9.5 Kotlin课堂:使用infix函数构建
    更可读的语法 381
    9.6 Git时间:版本控制工具进阶 383
    9.6.1 忽略文件 384
    9.6.2 查看修改内容 385
    9.6.3 撤销未提交的修改 387
    9.6.4 查看提交记录 388
    9.7 小结与点评 389

    第10章 后台默默的劳动者,探究 Service 390

    10.1 Service是什么 390
    10.2 Android多线程编程 391
    10.2.1 线程的基本用法 391
    10.2.2 在子线程中更新UI 392
    10.2.3 解析异步消息处理机制 395
    10.2.4 使用AsyncTask 396
    10.3 Service的基本用法 399
    10.3.1 定义一个Service 399
    10.3.2 启动和停止Service 401
    10.3.3 Activity和Service进行
    通信 404
    10.4 Service的生命周期 408
    10.5 Service的更多技巧 408
    10.5.1 使用前台Service 409
    10.5.2 使用IntentService 411
    10.6 Kotlin课堂:泛型的高级特性 415
    10.6.1 对泛型进行实化 415
    10.6.2 泛型实化的应用 417
    10.6.3 泛型的协变 418
    10.6.3 泛型的逆变 422
    10.7 小结与点评 425

    第11章 看看精彩的世界,使用网络 技术 427

    11.1 WebView的用法 427
    11.2 使用HTTP访问网络 429
    11.2.1 使用HttpURLConnection 430
    11.2.2 使用OkHttp 433
    11.3 解析XML格式数据 436
    11.3.1 Pull解析方式 438
    11.3.2 SAX解析方式 441
    11.4 解析JSON格式数据 444
    11.4.1 使用JSONObject 445
    11.4.2 使用GSON 446
    11.5 网络请求回调的实现方式 448
    11.6 最好用的网络库:Retrofit 451
    11.6.1 Retrofit的基本用法 452
    11.6.2 处理复杂的接口地址类型 456
    11.6.3 Retrofit构建器的最佳写法 459
    11.7 Kotlin课堂:使用协程编写高效的
    并发程序 461
    11.7.1 协程的基本用法 461
    11.7.2 更多的作用域构建器 467
    11.7.3 使用协程简化回调的写法 471
    11.8 小结与点评 474

    第12章 最佳的UI体验,Material Design实战 475

    12.1 什么是Material Design 475
    12.2 Toolbar 476
    12.3 滑动菜单 483
    12.3.1 DrawerLayout 483
    12.3.2 NavigationView 486
    12.4 悬浮按钮和可交互提示 491
    12.4.1 FloatingActionButton 491
    12.4.2 Snackbar 494
    12.4.3 CoordinatorLayout 496
    12.5 卡片式布局 498
    12.5.1 MaterialCardView 498
    12.5.2 AppBarLayout 504
    12.6 下拉刷新 507
    12.7 可折叠式标题栏 510
    12.7.1 CollapsingToolbarLayout 510
    12.7.2 充分利用系统状态栏空间 519
    12.8 Kotlin课堂:编写好用的工具方法 522
    12.8.1 求N个数的最大最小值 522
    12.8.2 简化Toast的用法 524
    12.8.3 简化Snackbar的用法 526
    12.9 Git时间:版本控制工具的高级
    用法 528
    12.9.1 分支的用法 528
    12.9.2 与远程版本库协作 530
    12.10 小结与点评 532

    第13章 高级程序开发组件,探究 Jetpack 533

    13.1 Jetpack简介 533
    13.2 ViewModel 534
    13.2.1 ViewModel的基本用法 536
    13.2.2 向ViewModel传递参数 539
    13.3 Lifecycles 541
    13.4 LiveData 545
    13.4.1 LiveData的基本用法 545
    13.4.2 map和switchMap 549
    13.5 Room 554
    13.5.1 使用Room进行増删改查 555
    13.5.2 Room的数据库升级 562
    13.6 WorkManager 565
    13.6.1 WorkManager的基本用法 566
    13.6.2 使用WorkManager处理
    复杂的任务 568
    13.7 Kotlin课堂:使用DSL构建专有的
    语法结构 571
    13.8 小结与点评 577

    第14章 继续进阶,你还应该掌握的 高级技巧 579

    14.1 全局获取Context的技巧 579
    14.2 使用Intent传递对象 582
    14.2.1 Serializable方式 582
    14.2.2 Parcelable方式 583
    14.3 定制自己的日志工具 584
    14.4 调试Android程序 586
    14.5 深色主题 589
    14.6 Kotlin课堂:Java与Kotlin代码
    之间的转换 596
    14.7 总结 600

    第15章 进入实战,开发一个天气 预报App 601

    15.1 功能需求及技术可行性分析 601
    15.2 Git时间:将代码托管到GitHub上 605
    15.3 搭建MVVM项目架构 612
    15.4 搜索全球城市数据 615
    15.4.1 实现逻辑层代码 615
    15.4.2 实现UI层代码 620
    15.5 显示天气信息 626
    15.5.1 实现逻辑层代码 626
    15.5.2 实现UI层代码 631
    15.5.3 记录选中的城市 645
    15.6 手动刷新天气和切换城市 647
    15.6.1 手动刷新天气 648
    15.6.2 切换城市 650
    15.7 制作App的图标 654
    15.8 生成正式签名的APK文件 659
    15.8.1 使用Android Studio生成 660
    15.8.2 使用Gradle生成 663
    15.9 你还可以做的事情 666

    第16章 编写并发布一个开源库,PermissionX 669

    16.1 开发前的准备工作 669
    16.2 实现PermissionX开源库 673
    16.3 对开源库进行测试 678
    16.4 将开源库发布到jcenter仓库 681
    16.5 体验我们的成果 688
    16.6 结束语 691

    展开全文
  • 历久而新,我的新书《行代码》已出版!

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

    千次阅读 多人点赞 2019-06-17 15:14:04
    行代码》是Android入门的一本书籍,刚开始接触是在17年10月份,那时重点关注了几个章节:Activity、ContentProvider、Service、BroadcastReceiver以及SQLite,在那个时候开始对Android开发产生了一定的兴趣...
  • 看完《第一行代码-第三版》- 郭霖 这本书后的总结

    千次阅读 多人点赞 2020-05-01 00:23:01
    看完《第一行代码-第三版》- 郭霖 这本书后的总结 - Andoird 开篇     2020-04-01 我购买了《第一行代码第三版 - 签名版(以下简称第三行代码),我等了它太久了,因为疫情的原因这本书推迟了...
  • 很高兴地告诉大家,《行代码 第3版》已经全书完稿了。目前一切进展都比较顺利,稿件已经全部修订完成,正在进行排版,下一步会送至出版社审核并申请版号,如果一切顺利的话,预计会在明年的2~...
  • 看一看Facebook工程师是怎么评价《行代码》的

    万次阅读 多人点赞 2019-08-16 07:56:50
    大家好,我是一名Facebook的工程师,同时也是《行代码——Android》的忠实读者。 虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的《行代码——Android》。 事实...
  • 郭神第一行代码第三版)资源下载,百度云下载地址: 链接:https://pan.baidu.com/s/1HsP72PmImn374dzDdR17bA 提取码:7np7 要的速领
  • 行代码(Android)二版PDF和源码

    万次阅读 多人点赞 2019-01-22 14:34:34
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定...行代码(...
  • 这本书叫作《行代码——Android》,从名字上就可以看出来,这是一本非常适合初学者的书籍,我特别想写这样的一本书,因为它可以和我的博客相辅相成。由于我写博客的时间比较晚,13年才开始写的,当时很多Android...
  • 本书作者,郭霖,Android开发工程师,有着丰富的项目实战经验,荣获CSDN认证...2、 Android已发布的版本:(查看最新的数据可以访问:http://developer.android.google.cn/about/dashboards) 3、Android应用开发特色
  • 对《行代码一章学习后,进行归纳总结。主要涉及到知识点有:Android系统架构、Android已发布的版本、Android Studio 的下载和开发环境的搭建、新建模拟器、创建Android项目的步骤。
  • 行代码勘误

    千次阅读 2016-12-09 09:40:52
    第3行,@android:style/Theme.Dialog 改为 @style/Theme.AppCompat.Dialog  张霞@Turing 3 58 倒数第16行代码 Super.oncreate(savedInstanceState); 与倒数第15行代码 setContentView(R....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,401,689
精华内容 960,675
关键字:

第三行代码