5 aspook

尚未进行身份认证

公众号「不混青年」

等级
TA的排名 9k+

计算机及相关专业的同学如何规划大学四年?

前言:本文是前段时间给大学学弟学妹们的分享,之前写在「大学生成长之路」这个公众号上,现发布在博客上,希望能给更多需要的人一些建议和启发。这几日在小区门口看到了儿童编程的广告,去年教育部将Python纳入全国计算机等级考试科目,甚至山东省的小学信息技术教材中也加入了Python内容。由此可见国家对计算机科学的重视,也能看到全民学习编程的热情。显然部分原因是市场推动,计算机相关专业毕业生的薪...

2019-05-02 21:21:45

Flutter技术概览

前几天Google宣布发布Flutter第一个beta版本,Flutter是一个全新的(其实Flutter很早就有了,前身叫Sky)移动UI框架,用来帮助开发者在iOS和Android平台上开发高质量的原生应用。Flutter是跨平台的免费开源UI框架,iOS和Android可以共用一套代码。Flutter官网地址为https://flutter.io/。Flutter的主要优点如下:...

2018-03-04 11:15:51

使WebAssembly更快:Firefox最新的流式分层编译器

很多人认为WebAssembly是一种可能改变游戏规则的技术,因为它可以使代码在Web上运行得更快。目前已经有了一些WebAssembly加速技术,还有一些加速方案即将出现。其中一种加速技术就是流式编译,即允许代码一边下载,浏览器一边编译。直到现在(原作者写此文时,Firxfox58还未发布),流式编译还是一种潜在的加速技术,随着Firefox58版本的发布,这种技术变成了现实。Fi

2018-01-26 23:10:44

Java反射基础指南

概述本文是一篇入门级别的教程,旨在探索Java反射机制,反射允许在运行时操作类、接口、属性以及方法。在编译时如果不知其名称,使用反射则非常方便。另外,还可以通过反射机制实例化类、调用方法、修改和读取属性字段值。导包使用反射不需要额外的库或Jar,JDK在java.lang.reflect包下提供了一系列的类来支持反射,只需要导入这个包即可,如下:importjava.la

2018-01-25 13:34:55

Android性能优化思维导图

Android性能优化思维导图

2017-12-06 16:23:29

Android架构组件之LiveData

基本概念LiveData是一个可以被观察的数据持有类,它可以感知并遵循Activity、Fragment或Service等组件的生命周期。正是由于LiveData对组件生命周期可感知特点,因此可以做到仅在组件处于生命周期的激活状态时才更新UI数据。LiveData需要一个观察者对象,一般是Observer类的具体实现。当观察者的生命周期处于STARTED或RESUMED状态时,LiveData会通知

2017-11-29 18:14:26

Android架构组件之ViewModel

Android架构组件之ViewModelViewModel概念及用途ViewModel用来存储和管理UI相关的数据,可于将一个Activity或Fragment组件相关的数据逻辑抽象出来,并能适配组件的生命周期,如当屏幕旋转Activity重建后,ViewModel中的数据依然有效。引入ViewModel之前,存在如下几个问题:通常Android系统来管理UIcontrollers(如Acti

2017-11-27 15:17:09

理解Java动态代理

概念理解动态代理类就是在运行时创建的实现了一系列特定接口的类。为了更好行文,还需要先明确三个概念:代理类——在本文中指动态代理类代理接口——在本文中指动态代理类实现的接口代理实例——在本文中指动态代理类的一个实例动态代理的一些特性:代理类是public或final的,不能是abstract代理类均继承自java.lang.reflect.Proxy类代理类在创建时按顺序实现了所指定的接

2017-11-15 12:38:57

Javac编译过程笔记

Javac前端编译简述这里不讨论JIT编译、AOT编译,本文提到的编译过程仅仅指把.java文件转变为.class文件的过程,这个过程是我们最常见的,通常由Javac编译器来完成。Javac编译器对代码的运行效率几乎没做什么优化,虚拟机设计者把对代码性能的优化集中到了后端的JIT编译器中。之所以这样设计,因为Class文件拥有虚拟机规范严格定义的通用格式,只要符合Class文件格式,就可以被虚拟机正

2017-11-10 14:15:04

Android Choreographer

引言之前其实并未关注过Choreographer,在一次调试Appdemo的过程中,偶然发现出现了一条这样的日志:I/Choreographer:Skipped1201frames!Theapplicationmaybedoingtoomuchworkonitsmainthread.这是一条系统日志,意思很明确:主线程的工作可能过多,导致了掉帧。突然发现Ch

2017-11-01 18:42:06

LocalBroadcastManager原理分析及应用

引言Android页面或模块之间通信的方法有很多,如Intent传值、startActivityForResult、EventBus(RxBus)等,大家追求的无非是解耦以及高灵活性;我们自己的应用中使用了基于Android消息机制封装的一套通信体系,且不谈这些,今天的主角是本地广播。本地广播是系统提供的一种应用内通信方式,它跟全局广播相比,其运行机制是不同的。全局广播是系统级别的,需要跨进程调用,

2017-10-12 11:10:45

基础回顾——Java对象创建、内存分配、访问定位概述

对象创建于内存分配Java中创建对象并为其分配内存的过程如下:Java语言层面执行new关键字在Java中,通常使用new关键字来创建一个对象(还没有对象的可以试试^_^),对应在虚拟机中会触发一条new指令。虚拟机处理new指令当虚拟机触发一条new指令时,首先根据指令参数去常量池中检查是否有相关类的符号引用,进一步检查它是否已经被加载、解析和初始化,如果没有,则需要先加载类。对类加载相关的信

2017-09-15 17:19:59

Hybrid框架之交互通信篇

前言虽然有些应用在使用ReactNative或Weex开发,但综合来看,业内还是以混合开发模式为主,从我们自家的App来看,H5业务所占比重越来越高,目前大概占到35%左右,因此一套好的Hybrid开发框架必不可少。混合开发的一般原则为交互较少、上线周期短、展示性质的页面使用H5开发,如节日活动页、商品秒杀页面等。Hybrid框架要考虑的事情非常多,如页面加载速度、预加载及缓存机制、与原生交互通信

2017-09-08 17:09:04

Android应用快捷方式

有的App会给用户提供快捷方式,8.0之前我们多是通过发送com.android.launcher.action.INSTALL_SHORTCUT广播的方式来实现。但在8.0的系统行为变更中指出,该广播变为私有的隐式广播,因此原来创建快捷方式的方法在8.0的系统上将不再有效,官方推荐我们使用ShortcutManager来创建应用快捷方式。快捷方式应用场景及类型快捷方式应用场景Android7.

2017-09-06 17:18:55

Android架构组件

这篇架构指南面向有一定Android开发基础并想了解高质量、高稳定性App最佳实践及推荐架构的开发者。注意:这篇指南假设读者熟悉AndroidFramework,如果你是Android开发新手,建议先去学习入门系列课程,这些课程也是作为学习本指南的基础。App开发者面临的常见问题移动开发不同于传统的桌面程序开发,桌面程序一般都有唯一的快捷方式入口,并且常作为单进程存在;而AndroidA

2017-08-15 10:30:57

业内移动App架构参考

业内移动App架构参考近一两年,业内一些移动应用都分享了各自的架构,Android官方也给出过一些架构示例,如MVP、AndroidArchitectureComponents等。以下是一些不错的移动架构分享的汇总,方便大家学习查看(排名不分先后)。此列表只是部分,其中也有两个并非移动应用架构,但同样值得学习,另外读者有补充的可以评论留言,我后续会补充该列表。人人车Android客户端架构演进

2017-08-10 16:37:58

Android全面屏适配

什么是全面屏概念很多人可能把全面屏跟曲面屏混淆,其实这是两个不同的概念。一般手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.777777……,全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximumaspectratio)为1.86,即能够兼容16:9的屏幕。一些手机厂商为了追求更大的屏幕空间以及更极致的用户体验,于是提高了屏幕纵横比,17:9

2017-08-08 15:06:24

Android应用架构

最近整理Android架构的一些东西,想到了此文,虽然是两年前的一篇文章了,却依然很有参考价值,对文中的架构演进过程深有同感,现在也有相当一部分App采用的是类似架构。——by译者Android应用架构从传统的Activity+AsyncTask到RxJava驱动的MVP架构。一个软件代码的不同部分应该是相互独立的,但可以在一起完成工作,就像一个运转良好的机器 。Android开发生态发展

2017-08-07 16:30:13

一种Android分包策略推荐

分包的重要性在架构一个App时,大家往往都在关注新潮的技术,却忽略了一点,那就是分包。很多人可能没有一套分包的原则,凭感觉甚至随心所欲地创建package或将代码放到任意的package中。虽然最终不会影响App功能,但这个问题其实非常严重。一种不好的分包策略带来的影响将会一直持续在App的开发迭代周期中,主要表现为以下几点:代码混乱,功能模块界限模糊不易阅读与维护,尤其对新人来说功能扩展与重

2017-07-13 19:11:17

如何加快Gradle的构建速度

GoogleI/O2017已经过去几周了,相信大家都参与了这次会议的许多专场。本届I/O的一个具有实际意义的话题是HowtospeedupyourslowGradlebuilds。在该专场会议上,AndroidStudio的工具团队向大家推荐了10条非常有用的建议用来加快gradle的构建速度。个人决定把这些建议整理成一个方便使用的列表,分享如下:免责声明:这些建议并非个人

2017-06-22 13:31:11

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。