年度巨献-Android 读书心得

《Android应用开发揭秘》读书笔记 这个笔记具有使用性,大家可以根据它自己也整理和记录笔记 立即下载

每日一言:不积硅步无以至千里,不积小流无以成江海。

欢迎一起讨论和学习,QQ:732258496  QQ群:478720016

 

目录
一、Activity生命周期和启动模式
二、IPC机制
三、View的事件体系
四、View的工作原理
五、理解RemoteViews
六、Android的Drawable
七、Android动画深入分析
八、理解Window和WindowManager
九、四大组件的工作过程
十、Android的消息机制
十一、Android的线程和线程池
十二、Bitmap的加载和Cache
十三、综合技术
十四、JNI和NDK编程
十五、Android性能优化

一、Activity生命周期和启动模式

  • 1.当前设置的 Configuration 发生改变
  • 2.返回桌面时,Activity采用了透明主题,当前Activity不会调用onStop
  • 3.从Activity可见 :onStart onStop ;Activity是否前台 :onResume onPause
  • 4.ActivityStack (仪表盘) scheduleLaunchActivity(计划)
  • 5.onPause 和onStop不能执行耗时操作
  • 6.onSaveInstanceState() onRestoreInstanceState() Boundle 对象 
  • 7.委托思想。Activity-windows-decorView
  • 8.当Activity正常销毁的时候,系统不会调用onSaveInstanceState()
  • 9.将后台工作放入Service中从而保证进程有一定的优先级
  • 10.不想系统重新创建Activity,可以给Activity制定configChanges属性:local,orientation,keyboardHideen
  • 11.ApplicationContext启动standard模式的activity 报错
  • 12.onNewIntent
  • 13.singleTask
  • 14.什么是Activity所需要的任务栈"

二、IPC机制

  • 1.问题:解决进程间的通讯 ; 私有android:process="":remote"" 全局 com.wph:remote;两个应用相同的ShareId || 签名相同
  • 2.序列化 Serializable (读写文件)erialVersionUID (反序列)
  • 3.每个进程都分配一个独立的虚拟机,不同虚拟机在内存分配上有不同的地址空间;内存共享-失败
  • 4.SharePreference不支持两个进程同时去执行写操作,运行在同一进程中的组件是属于同一虚拟* 机和同一个Application的
  • 5.Binder主要用在Service中,包括AIDL和Messenger 代理
  • 6.IPC方式1-Bundle 在(Activity/Service/Receiver)的Intent中传递Bundle;实现了Parcelable
  • 7.IPC方式2-文件共享--特例:SharePreference 键值对系统对它有一定的缓从策略,所以会丢失数据
  • 8.IPC方式3-使用messenger-以串行的方式处理客户端发来的消息
  • 9.IPC方式4-AIDL-以大量并非请求, 只用ArrayList 观察者模式
  • 10.IPC方式5-contentProvider 唯一表示标示符android:authorities
  • 11.IPC方式6-Socket
  • 12.Binder连接池:将每个业务模块的Binder请求统一转发到远程service去执行,避免重复创建service的过程"

三、View的事件体系

  • 1.⁨View在平移的过程中,top和left表示的是原始左上角的位置信息,其值并不会发生变化,此时发生变化的是 x、y、translationX、translationY这四个参数
  • 2.MotionEvent :ACTIONDOWN ACITONMOVE ACTION_UP getX/getY getRawX/getRawY
  • 3.TouchSlop 最小滑动距离 ;VelocityTracker 滑动速度;GestureDetector 手持检测;
  • 4.如果监听滑动相关 onTouchEvent ;监听双击则使用 GestureDetector
  • 5.使用动画来移动View:translationX/Y ,View动画,属性动画:为了兼容3.0以下的版本,需要开源库nineoldandroids
  • 6.scrollTo/scrollBy:操作简单,适合对View内容滑动
  • 7.Activity - Windows-ViewGroup - View
  • 8.dispatchTouchEvent-onInterceptTouchEvent(ViewGroup特有的方法)-onTouchEvent
  • 9.滑动冲突 拦截事件 requestDisallowInterceptTouchEvent

四、View的工作原理

  • 1.⁨自定义View:直接继承View和ViewGroup 或者直接继承系统控件
  • 2.ViewRootImpl连接WindowManager和DecorView
  • 3.View的工作流程:measure(测量宽/高)-layout(确定View的最终宽/高和四个顶点的位置)-draw(将View绘制到屏幕上)
  • 4.直接继承View,需要重写onMeasure,并设置wrapcontent是的自身大小,否则布局中使用wrapcontent相当于使用match_parent
  • 5.ViewGroup是一个抽象类,因此它没有重写View的onMeasure方法,但是提供了measureChildren
  • 6.layout首先通过setFrame来设定View的四个顶点的位置--onlayout
  • 7.draw过程 background.draw(canvas)绘制背景-onDraw()绘制自己-dispatchDraw 绘制children-onDrawScrollBars 绘制装饰
  • 8.自定义View分类:(1)继承View重写onDraw()方法 (2)继承ViewGroup派生特殊的layout (3)继承特定的View(TextView)(4)继承特定的ViewGroup(LinearLayout)
  • 9.自定义View须知(1)让View支持wrap_content(2)支持padding (3)不使用Handler(4)如果有线程和动画,要及时停止(5)如有嵌套处理好滑动冲突

四、View的工作原理

  • 1.⁨自定义View:直接继承View和ViewGroup 或者直接继承系统控件
  • 2.ViewRootImpl连接WindowManager和DecorView
  • 3.View的工作流程:measure(测量宽/高)-layout(确定View的最终宽/高和四个顶点的位置)-draw(将View绘制到屏幕上)
  • 4.直接继承View,需要重写onMeasure,并设置wrapcontent是的自身大小,否则布局中使用wrapcontent相当于使用match_parent
  • 5.ViewGroup是一个抽象类,因此它没有重写View的onMeasure方法,但是提供了measureChildren
  • 6.layout首先通过setFrame来设定View的四个顶点的位置--onlayout
  • 7.draw过程 background.draw(canvas)绘制背景-onDraw()绘制自己-dispatchDraw 绘制children-onDrawScrollBars 绘制装饰
  • 8.自定义View分类:(1)继承View重写onDraw()方法 (2)继承ViewGroup派生特殊的layout (3)继承特定的View(TextView)(4)继承特定的ViewGroup(LinearLayout)
  • 9.自定义View须知(1)让View支持wrap_content(2)支持padding (3)不使用Handler(4)如果有线程和动画,要及时停止(5)如有嵌套处理好滑动冲突

五、理解RemoteViews

  • 1.Remote Views 在Android中的使用场景有两种:通知栏和桌面小部件,跨进程更新界面

  • 2.创建Remote Views:只要提供当前应用的包名和布局文件的资源id即可创建一个RemoteViews对象

  • 3.RemoteViews作用:在其它进程中显示并更新View界面

  • 4.书上很多东西都过时了或者在Android8.0上会出现问题,下面的总结都是在Android8.0上运行成功的,会有一些需要注意的地方

  • 5.由于运行在不同的进程中,所以RemoteViews无法像正常的View一样更新UI。 RemoteViews提供了一系列的set方法,但是这些set方法只是View全部方法的子集。 RemoteView支持的View的类型也是有限的。

  • 6.使用 构造方法 最常用的是下面的这个构造方法,第一个参数是包名,第二个是加载的布局资源文件。

    public RemoteViews(String packageName, int layoutId) {
    this(getApplicationInfo(packageName, UserHandle.myUserId()), layoutId);
    }
    
  • 7.支持的View类型, 只支持以下的View,不支持它们的子类和其他类型的View,所以无法在RemoteViews中自定义View

    FrameLayout、LinearLayout、RelativeLayout、GridLayout、AnalogClock、    
    Button、Chronometer、ImageButton、ImageView、ProgressBar、TextView、
    ViewFlipper、ListView、GridView、StackView、AdapterViewFlipper、ViewStub
    
  • 8.提供的方法 RemoteViews没有提供findViewById(),因为无法直接访问View元素,必须通过RemoteView提供的一系列set方法。

 

六、Android的Drawable

Drawable 表示一种图像概念,但又不全是图片,通过颜色也可以构出各样的图像效果,一般通过xml来定义

优点:首先,它使用简单,比自定义View的成本低;其次,非图片类型的Drawable占用空间小

分类:BitmapDrawable ShapeDrawble。 LayerDrawable StateListDrawable等

使用范围:1.作为ImageView中的图像来显示 2.作为View的背景

核心方法:draw方法

 

七、Android动画深入分析

  • 1.种类:View动画 帧动画和属性动画
  • 2.View动画:支持4种动画效果:平移动化(translate) 缩放动化(scale) 旋转动化(rotate) 和透明度动画(alpha) ,自定义View动画很少使用,一般使用xml
  • 3.属性动画 api 11 增加,开源动画库nineoldandroids 兼容前后 ,使用代码来实现属性动画
  • 4.插值器:Interpolator 影响动画的速度 TimeInterpolator 时间插值器 , 估值器 TypeEvaluator 根据百分比计算改编后的属性
  • 5.注意事项:OOM问题、内存泄漏、兼容性问题、不要使用px

八、理解Window和WindowManager

  • 1.Android中所有的视图都是通过window来呈现的,附加在window上。
  • 2.WindowManager是外界访问window的入口,具体实现方法位于WindowManagerService中
  • 3.Window是一个抽象概念,每一个Window都对应着一个View和一个ViewRootImpl,Window和View通过ViewRootImpl来建立联系,因此Window并不是实际存在的,它是以View的形式存在
  • 4.Activity和Dialog中的window的创建是通过PolicyManager的makeNewWindow方法来完成的
  • 5.Toast具有定时取消这一功能,采用Handler,具有IPC过程

九、四大组件的工作过程

  • 1.BroadcastReceiver既可以在AndroidMainfest中注册也可以通过代码来注册。其它三种组件必须在AndroidMainfest中注册
  • 2.在调用方式上:Activity/Serivice/BroadcastReceiver需要借助intent,尔ContentProvider无需借助intent
  • 3.Activity组件是可以停止的,是一个前台界面角色
  • 4.Activity组件只有一种运行模式,即Activity处于启动模式,Service:启动和绑定模式,停止:stopService和unBindService
  • 5.广播注册有两种方式:静态注册:安装时会被系统解析;动态注册:Context.registerReceiver(),不需要停止

十、Android的消息机制

  • 1.Android的消息机制主要是指Handler的运行机制,它的运行需要底层MessageQueue和Looper的支持。MessageQueue采用单链表的数据结构,只是一个消息存储单元;Looper可以处理消息,无限循环的去查询是否有新消息;
  • 2.如果使用Handler就必须为线程创建Looper,我们常说的主线程即ActivityThread,创建时候就会默认创建Looper
  • 3.Android的UI控件不是线程安全的,加锁缺点:1.UI访问逻辑变复杂2.降低UI访问效率
  • 4.ThreadLocal的好处:通过ThreadLocal就可以实现Looper在线程中的存取。如果不采用它,那么系统就必须提供一个全局的哈希表,这样一来就必须提供一个类似于LooperManager的类了。

十一、Android的线程和线程池

  • 1.AsyncTask底层用到了线程池;IntentService和HandlerThread底层直接使用了线程
  • 2.不同形式的线程具有不同的特性和使用场景,AsyncTask封装了线程池和Handler,主要是为了方便在子线程中更新UI;IntentService是一种服务;HandlerThread内部使用Handler,具有消息循环的线程
  • 3.线程是系统调度的最小单元,但又是一种受限的系统资源,做到线程并发,除非线程数量小于cpu核心数,这是不可能的。通过线程池可以避免频繁创建和销毁线程所带来的系统开销
  • 4.AsyncTask封装了Thread和Handler,不适合进行特别耗时的后台任务; onPreExecute()-doInBackground()-onProgressUpdate()-onPostExecute()AsyncTask的类必须在主线程中加载
  • 5.Android中的线程池来源于Java中的Executor,Exector是一个接口,真正的实现是 ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<runnable> workQueue,ThreadFActory threadFactory) 

十二、Bitmap的加载和Cache

  • 1.Android对单个应用施加的内存限制,比如16MB,这导致加载Bitmap的时候很容易出现内存泄出

  • 2.目前常用的缓冲策略是LruCache(用做内存缓冲)和DiskLruCache(存储缓冲);Lru(Least Recently Used)最近最少使用算法,核心思想是:当缓冲快满时,淘汰最少使用的缓冲目标

  • 3.高效的加载图片:BitmapFactory提供了四类方法:decodeFile(文件系统)、decodeResource(资源)、decodeStream(输入流)、 decodeByteArray(字节数组),来加载出Bitmap,最终是在底层实现的

  • 4.BitmapFactory.Options来加载所需尺寸的图片,主要参数:insampleSize

十三、综合技术

  • 1.使用CrashHandler来获取应用的crash信息,当crash发生的时候,系统就会回调UncaughtException的uncaughtException方法,在uncaughtException方法中就可以获取到异步信息
  • 2.使用Multidex来解决方法数越界,Android中的单个dex文件包含的最大方法数时65536,包含Framework、一来的jar包以及应用本身的代码中的所有方法。为了解决这个问题,google提出了multidex的解决方案,5.0之后,默认支持,可以从apk中加载多个dex文件
  • 3.Android的动态加载技术必须解决的三个基础问题:资源访问,Activity生命周期的管理和ClassLoader的管理。用到了反射和代理
  • 4.反编译:使用dex2jar和jd-gui反编译apk,使用apktool对apk进行二次打包

十四、JNI和NDK编程

  • 1.Java JNI的本意是Java Native Interface (Java本地接口),它是为了方便Java调用C、C++等本地代码所封装的一层接口。
  • 2.NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便地通过JNI来访问本地代码C、C++。NDK还提供了交叉编译器,只需要简单修改mk文件即可以生成特定平台cpu平台的动态库。
  • 3.使用NDK好处:提高代码的安全性/很方便的使用目前已有的C/C++开源库/便于平台间的移植
  • 4.JNI的开发流程:(1)在Java中申明native方法 (2)编译Java源文件得到class文件,然后通过javah命令到处JNI的头文件(3)实现JNI方法 (4)编译so库并在Java中调用
  • 5.JND的开发流程:(1)下载并配置NDK (2)创建一个Android项目,并声明所需的native方法(3)实现Android项目中所声明的native方法(4)切换到jni目录的父目录,然后通过ndk-build命令编译产生的so库
  • 6.JNI的数据类型和类型签名 (可百度)

十五、Android性能优化

  • 1.OOM:过多的使用内存导致程序内存溢出
  • 2.ANR:过多的使用CPU资源,一般指做大量的耗时任务,导致手机变得卡顿甚至出现程序无法响应问题
  • 3.性能优化方法:布局优化、绘制优化、内存泄漏优化、响应速度优化、ListView优化、Bitmap优化、线程优化
  • 4.内存泄漏:它并不会导致程序功能异常,但是会导致Android程序的内存占用过大,提高内存溢出的发生几率
  • 5.代码的可维护性和可扩展性:通过合理的设计原则去完成,如良好的代码风格、清晰的代码层级、代码的可扩展性和合理的设计模式

         欢迎交流,互相学习,感谢大家一直以来的关注,谢谢

读书笔记程序源代码android elipse 读书笔记程序源代码android elipse 你下载后,评论一下,网站做奖励你一分的。 立即下载

相关推荐

Android移动应用开发实验指导书

Android移动应用开发实验指导书,设计Android开发环境,Android应用程序,Android生命周期,Android用户界面,组件通信与广播,后台服务,数据存储与访问,位置服务于地图应用,AndroidNDK开发。

《Android群英传》读后感

网上买了两本书,Android群英传和Android艺术探索,说是适合初高级开发者,感觉还行,对自己提高挺有帮助的。以前总是想着解决问题,遇见问题了就百度,实现 不了的功能也百度,copy,不知其所以然,完全是入门小白的状态,然后看完这本书后对一些知识点有了比较深入的了解,也转换了观念,得知道一些东西的原理,花了 两周多看完(断断续续),收获颇丰,现在准备再看看Android艺术探索,准备等隔

键盘上的烟灰的专栏 745

android 艺术开发探索 读书笔记(1-3章)

android 艺术开发探索 读书笔记(1-3章)

《深入理解Android内核设计思想》读书有感

《深入理解Android内核设计思想》林学森编著,这本书是带我的老师给我的。因为最近啃《Android系统源代码情景分析》这本书binder驱动相关部分时被撂倒在地。 于是跑去跟老师诉苦,她给我推荐了这本书。今天下午拿到的书,看了一下午,三个多小时。 说说感受吧,首先从文字组织性和语言优美性讲,这本书是我目前看到技术性书籍中可谓最好的了。读起来很流畅,不像《Android系统源码情景分析》这本

koozxcv的博客 4844

第一行代码 android学习笔记 完整版

第一行代码 android学习笔记 修改完整版

Win11下Python脚本不执行?5分钟搞定PATH环境变量配置(VSCode终端实测)

本文针对Win11系统下VSCode终端中Python脚本执行无响应的问题,提供了详细的诊断与解决方案。核心在于正确配置PATH环境变量,通过图形化界面调整Python路径优先级,并分享了VSCode终端环境变量的刷新技巧,帮助开发者在5分钟内快速解决环境配置难题。

weixin_28358083的博客 384

Android架构文章合集(a collection of android Architecture)

本文主要是android目前流行架构的一些文章,本文转自简书,欢迎阅读。

Android_杜小菜_移动开发技术专栏 973

Ollama内网离线部署大模型实战:从模型文件到私有化服务

本文详细介绍了如何在内网离线环境下,利用Ollama部署私有化大模型服务。内容涵盖从获取GGUF格式模型文件、手动安装Ollama、编写核心Modelfile配置文件,到创建运行模型、性能调优及安全加固的全流程实战指南,旨在帮助企业安全、可控地构建内部AI能力。

weixin_29209805的博客 214

关于android书籍读后感,【读书笔记】深入理解android内核设计思想

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?这本书太深了,不适合略读,可以在碰到相关问题时仔细研读,知识覆盖面较广这么多大块的时间来一条条钻研这些内核实现细节其实不如学习算法来的有用,毕竟一个是形式,一个是内功留待查阅图片:#笔记文字深入理解Android内核思想1 4 操作系统基础1.1 4.3 进程间通信的经典实现1.1.1 共享内存1.1.2 管道pipe1...

weixin_29146779的博客 409

从虚拟机到双系统:手把手教你为Gromacs搭建最强Linux环境(含WSL2、Ubuntu22.04配置)

本文详细指导如何在Windows系统下为Gromacs分子动力学模拟搭建高性能Linux环境,涵盖WSL2和Ubuntu22.04双系统配置。通过对比虚拟机、WSL2和原生Linux的性能数据,提供GPU加速、内存优化等实用技巧,帮助科研人员提升计算效率。

weixin_30861797的博客 270

3D Gaussian Splatting环境配置和运行

使用conda命令根据environment.yml文件创建虚拟环境时,安装的pytorch是使用conda install 命令来安装的,实际上并不能成功安装带有gpu的pytorch,而这两个模块的安装依赖于带gpu的pytorch。如果不注释掉这三行,直接安装会报错

m0_46360757的博客 3326

Android应用开发学习心得分享:从新手到应用开发者的成长之路

本文分享了我在Android应用开发学习过程中的心得和经验。首先,建立扎实的基础知识是成功的关键,包括掌握Java编程语言和XML布局语言。其次,深入学习Android开发框架和工具,如Android Studio、Android SDK和Gradle,可以提高开发效率。重要的一点是通过实践项目来提升自己的技能,从简单到复杂逐步提高。同时,阅读官方文档和参与开发者社区是获取宝贵资源和经验的途径。最后,持续学习和追求创新是在Android应用开发领域中不断进步的关键,要关注最新技术和趋势,并不断提升自己的开发

nuanshu520的博客 1033

JS逆向-B站评论数据w_rid参数和wts参数

本文是该专栏的第69篇,后面会持续分享python爬虫干货知识。本文以B站的评论数据为例,通过JS逆向获取其中的w_rid参数以及wts参数生成规律。具体的“逆向”思路逻辑,笔者将会详细介绍每个步骤,并且将在正文结合“完整代码”来详细介绍。废话不多说,具体细节部分以及详细思路逻辑,笔者将在正文结合完整代码进行详细说明。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 2048

安卓读书笔记笔记

adb shell dumpsys activity 查看Activity的任务栈第二章 进程通信IPC通过制定andriud:process的方式简单的开启进程会造成以下几个问题1、静态成员和单例模式完全失效  (内存的问题,系统为不同进程分配了不同的内存,他们之间是独立的)2、进程同步机制完全失效   3、SP的可靠性下降  (文件不支持两个进程同事进行读写操作)4、Application会多...

u014505759的博客 1220

《拉依达的嵌入式\驱动面试宝典》—计算机硬件篇(一)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 768

人形机器人电源系统硬件开发:从原理图设计到PCB布局的完整流程

人形机器人是“移动的智能终端”,其电源系统如同“心脏+血管”:既要为大脑(主控)、肌肉(电机)、感官(传感器)提供稳定能量,又要在有限体积内应对高动态负载(如跳跃时电机瞬间大电流)。本文聚焦“硬件开发”维度,覆盖从需求分析到PCB制板的完整流程,适合硬件工程师、机器人爱好者快速掌握工程实战方法。

AI天才研究院 2174

关于几本安卓技术书籍的读书感受

1.几年终于觉悟了,开始努力读书搞技术了,几个月大致看完了这几本书,现在就来说说感受吧!《安卓艺术开发与探索》,《安卓群英传》,《app研发录》, 《第一行代码第二版》。《安卓艺术开发与探索》作者任玉刚。看这本书,收获很大,不过建议代码和项目数量上来了再来看这本书,这本书我大致看了两遍,第一遍,感觉没感觉,很多东西都看的一脸懵逼,后来一年后再来看这本书,感觉好像懂了好多,(看来我这一年还是有长进的

tangchao5206的博客 2531

6、基于深度强化学习的无人机路径规划

本文介绍了一种结合人工势场法的改进DQN深度强化学习算法在无人机路径规划中的应用。通过设计合理的网络结构、状态空间、动作空间和融合引力-斥力机制的奖励函数,实现了无人机在复杂环境中的自主避障与目标导向飞行。采用轻量级神经网络提升实时性,并在Gazebo仿真环境中进行训练与测试,结果表明该算法具有快速收敛、高成功率和良好适应性。实验评估指标包括损失函数、最大Q值和任务成功率,验证了方法的有效性。文章还探讨了其在物流配送、农业植保和环境监测等领域的应用前景,并展望了多无人机协同与复杂环境适应性等未来研究方向。

html8的博客 238

《Android开发艺术探索》读书笔记1.Activity的生命周期和启动模式

1. Activity的生命周期全面分析 1. 典型情况下的生命周期分析 Activity启动 ↓ onCreate ↓ onStart ←-- onRestart ↓ ↑ onResume | ↓ | Activity运行 | ↓ | onPause | ↓ | onStop ---------- ↓ onDestroy ↓ Activity销毁 当新启...

Alen_Sun的博客 442

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android读书笔记(一)

1.存储用户临时数据onSaveInstanceState() 2.技巧:知晓当前在哪一个活动 3.技巧:随时随地退出程序 4.技巧:activity传值

来来来,走一走 1187

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android读书笔记

1、Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供器(Content Provider)。广播接收器可以允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。内容提供器则为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现

Miss_min的博客 935

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Android 读书笔记

《Android开发艺术探索》 当前 Activity 为 A,此时打开 Activity B:A.onPause() → B.onCreate() → B.onStart() → B.onResume() → A.onStop(),故不能在 onPause 中做重量级操作,使新 Activity 尽快显示出来并切换到前台。 当系统内存不足时,系统会按照 [ 后台 Activity

DawnYu 3723

一个android工程师写java后台的感受

由于项目需要,应该是公司缺人手吧,项目经理的一句有人对javaWeb感兴趣么,就把这活接到了手中。以前从未写过javaEE的东西,有概念的话也是从培训时候学到的,还有就是自己看视频学习,但只是做过小的code,完整的项目还没有做过,这算是第一个。 写代码从来都是一把梭,说干就干,安装了MyEclipse和MySQL,搭建好tomcat环境后,领导给了一个SpringMVC的框架就说写吧,不懂就问

格调的博客 2万+

《Android进阶之光》读书笔记

前言 0、信息 创建时间:2019 年1 月 10 日 修改时间:2020 年 1 月 19 日 分类:读书笔记 整理:yoyiyi(soleil雪寂) 状态:已完成 仓库:Soleil-Notes 第1章 Android新特性 1.1. Android 5.0 新特性 MD 设计风格、支持多种设备、全新的通知中心、Overview、设备识别解锁、RecyclerView、CardView 1...

soleil雪寂 1965
上一篇: Android项目探索系列之《GSYVideoPlayer开源项目》
下一篇: Android Gradle 骚操作之 ext
黄毛火烧雪下
黄毛火烧雪下 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄14年 7714粉丝 439原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄毛火烧雪下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值