android框架

金三银四,收下这份最全安卓开发面试指南!

天涯浪子 提交于 2020-02-13 17:28:21
引言 时间匆匆而过,2020已经过了43天,虽然开局不利,但是我们要怀着一颗积极向上的心,来面对未来每一天的挑战! 现在只是一些小考验,我们要相信未来是美好的,做好充足准备去迎接面试的黄金期,加油! 所谓“兵马未动,粮草先行”,我们打响明天的战役也需要精神食粮来做后勤保障才是。 在此我整理了一份安卓开发面试指南,希望对磨砺锋芒、奋发向上的小伙伴有所帮助,祝你早日剑指大厂,扬帆起航,奥利给! Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList Java集合——HashMap Java集合——TreeMap Java集合——LinkedHashMap Java泛型 Java反射(一) Java反射(二) Java反射(三) Java注解 Java IO(一) Java IO(二 ) RandomAccessFile Java NIO Java异常详解 Java抽象类和接口的区别 Java深拷贝和浅拷贝 Java transient关键字 Java finally与return执行顺序 Java 8 新特性 Java并发 Java创建线程的三种方式 Java线程池 死锁 Synchronized/ReentrantLock 生产者/消费者模式 volatile关键字 CAS原子操作

android FrameLayout详解

随声附和 提交于 2020-02-13 09:25:17
首先看演示: FrameLayout框架布局是最简单的布局形式。所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的控件被放在最底层,最后一个添加到框架布局中的视图显示在最顶层,上一层的控件会覆盖下一层的控件。这种显示方式有些类似于堆栈。 当我们往里面添加组件的时候,所有的组件都会放置于这块区域的左上角; 帧布局的大小由子控件中最大的子控件决定,如果都组件都一样大的话,同一时刻就只能看到最上面的那个组件了。 1 layout_gravity FrameLayout根本无法控制他的子控件的位置,子控件可以通过android:layout_gravity属性来控制自己在父控件中的位置,从而制定组件的对其方式。 2 layout_margin FrameLayout布局里面的控件单独设置layout_margin类的属性没有效果。FrameLayout中的控件layout_margin设置要依赖layout_gravity属性,否则layout_margin设置无效。layout_gravity有好几个值可以设置,具体要设置哪一个呢?其实layout_gravity可以理解为设置控件的参考点,控件最终显示位置最终由layout_gravity和layout_margin共同决定。 如果想要控件正常显示,可以将控件的layout_gravity设置为top,以屏幕左上角为参考点。 3

微信团队分享:iOS版微信的高性能通用key-value组件技术实践

吃可爱长大的小学妹 提交于 2020-02-13 07:14:28
本文来自微信开发团队guoling的技术分享。 1、前言 本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称MMKV)。 MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。希望对于有高性能key-value 组件或类似技术需求的IM同行,能通过本文获得一定的启发。 学习交流: - 即时通讯开发交流群: 320837163 [推荐] - 移动端IM开发入门文章:《 新手入门一篇就够:从零开发移动端IM 》 (本文同步发布于: http://www.52im.net/thread-1461-1-1.html ) 2、MMKV 源起 在 iOS 微信的日常运营中,时不时就会爆发特殊文字引起 iOS 系统的 crash,《 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的? 》一文里面设计的技术方案是在关键代码前后进行计数器的加减,通过检查计数器的异常,来发现引起闪退的异常文字。 《 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的? 》里设计的技术方案大致原理就是: 1)在会话列表、会话界面等有大量 cell 的地方,希望新加的计时器不会影响滑动性能; 2

安卓开发笔记——打造属于自己的博客园APP(二)

ぐ巨炮叔叔 提交于 2020-02-13 02:12:50
  最近事情比较多,博客更新又落下了,平时有个习惯,喜欢睡前看看博客园里博友的文章,但一直感觉APP市场上下载下来的博客园客户端用起来并不是很舒服,近来发现博客园也有对外开放的数据接口,所以打算自己写个博客园的客户端。   近来谷歌推出了一套全新的UI设计规范——Material Design,不清楚的朋友看看《 Material design非官方中文指导手册 》,相比之前谷歌在Android Holo风格上平平淡淡的表现不同,Material Design现在是被Google所比较重视的。在推出这门全新设计语言后,谷歌上自家的应用很快就使用Material Design全新设计了,如Play商店,Google Map,Google+等等。   打算赶一下潮流,紧跟谷歌的步伐遵循Material Design设计规范开发这个APP,也刚好让自己熟悉下Android5.0后的新特性。这个APP会慢慢做下来,逐步完善所需功能,我也不确定会写几篇文章,反正有空闲的时候就拿出来写写吧。    初步打算实现用户的登陆,分类查看文章内容,新闻内容,包括用户信息的浏览,关注,偏好文章的收藏以及离线阅读功能,大家如果有什么好的建议,可以在文章评论给我留言,虚心请教。 好了,言归正传,先来看下今天要实现的效果:(UI主框架的搭建) 如果在过去,我们要实现上图的效果

Android中View和ViewGroup介绍

旧时模样 提交于 2020-02-12 02:33:46
1. 概念 Android 中的View与我们以前理解的“视图”不同。在 Android 中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作 系统 中的window。 ViewGroup是View的子类,所以它也具有View的特性,但它主要用来充当View的容器,将其中的View视作自己的孩子,对它的子View进行管理,当然它的孩子也可以是ViewGroup类型。 ViewGroup(树根)和它的孩子们(View和ViewGroup)以树形结构形成了一个层次结构,View类有接受和处理消息的功能,android系统所产生的消息会在这些ViewGroup和 View之间传递。 2. Android的窗口系统 Android的窗口系统是Client/Server模式的,我在这里只讲窗口系统的客户端(图1)。 我们所提到的概念:View,ViewGroup,DecorView,ViewRoot都是存在于窗口系统的Client端。 Android中的Window是表示Top Level等顶级窗口的概念。DecorView是Window的Top-Level View,这个View可以称之为主View,DecorView会缺省的attach到Activity的主窗口中。 ViewRoot建立了主View(DecorView)与窗口系统Server端的通讯桥梁,

安卓基础(LiveData DataBinding)

别说谁变了你拦得住时间么 提交于 2020-02-11 20:10:15
昨天因为有点事情,没有及时发表博客,昨天学习了LiveData和DataBinding,LiveData属于jetpack中的框架里面的,DataBinding可以进行数据绑定。 我分别利用这两部分知识做了一个实例,可以进行对比一下。 LiveData: java/MainAcitivity: package com.example.livedatetest; import android.arch.lifecycle.Observer; import android.arch.lifecycle.ViewModelProvider; import android.arch.lifecycle.ViewModelProviders; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.WindowInsets; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView;

从走出校门到Java实习生生活

跟風遠走 提交于 2020-02-11 17:58:19
序 男,95年,这个学期就大四了,非计算机专业(数字媒体)。目前在二线城市做Java实习生,待遇一般,应该算一个正常的实习生水平吧:租的一个约10平米的小单间,实习工资-衣食住行-杂七杂八的小消费差不多结余100块左右,一般般,勉勉强强能养活自己。 技术的基础大概是这样,从 去年4月 开始学JavaWeb技术,从jsp开始一直学到Spring MVC、Mybatis这样的技术栈,中间做了几个小项目(CMS、管理系统等)。从 去年10月 开始转做Android了,水平也就是四大组件+蓝牙/NDK+一些库的技术以及稍微了解了一些什么事件机制、OOM优化。嗯,这样随手列出来感觉自己水平一般般,就是能做一些J2EE和Android项目的水平。 写简历 因为从 去年10月~出校门的7月 这一段时间一直在做Android开发,我自己也一度认为我出来后也只是做Android开发的,所以投了很多Android的简历,简历上除了写Android的技术,还写了一大堆的Web开发中的Spring、Mybatis上去,项目经验也是臃肿的不行,2个Web,2个Android的,看上去内容挺多的,但是两个方面的开发都不突出,于是我就想了一个策略,分简历,做一份Java简历,做一份Android简历。两者各突出其重心,投简历的时候分别投不同的岗位。大概效果可以看下面区别 Java简历 熟练Java开发

Android-RecyclerView多布局封装

倖福魔咒の 提交于 2020-02-11 17:16:26
对多布局的封装,开发时主要处理 数据绑定接口,视图布局返回接口,数据绑定:在holder类提供了个tag属性,初始化holder会将视图布局返回的viewtype作为标识,这样在bindData方法时switch(holder.gettag())来判断holder类型,继而拿到holder的itemview,继而findviewById,绑定数据。视图布局返回:主要是多布局的逻辑处理,什么情况下返回什么样的布局 adapter:封装adapter用于生成通用holder;同时向在onCreateViewHolder方法中有参数view和layout布局的id,这个id是后续在holder类添加的属性tag:用来标识不同的布局holder; public abstract class RecycleViewAdapterUtil extends RecyclerView.Adapter<ViewHolder>{ List list; Context context; public RecycleViewAdapterUtil(Context context, List list){ this.list = list; this.context = context; } @Override public int getItemViewType(int position) {

Cordova学习(一) 环境搭建

半世苍凉 提交于 2020-02-11 02:59:05
一、什么是cordova Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。 Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。 Cordova支持如下移动操作系统:iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。 二、环境搭建 1、下载 nodeJS , cordova是利用nodeJS进行管理,其中也包含了npm管理器 (什么是NPM: Nodejs自身提供了基本的模块,但是开发实际应用过程中仅仅依靠这些基本模块则还需要较多的工作。幸运的是,Nodejs库和框架为我们提供了帮助,让我们减少工作量。但是成百上千的库或者框架管理起来又很麻烦,有了NPM,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。 ) 在命令行窗口确认安装完成: 2、配置ant环境, 到官方 主页 下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包。将其解压到你的硬盘上,例如:C:\apache-ant-1.8.1。 window中设置ant环境变量: ANT_HOME C:/

Android常用开源库(转)

你说的曾经没有我的故事 提交于 2020-02-10 15:32:45
一 、基本控件 TextView HTextView 一款支持TextView文字动画效果的Android组件库。 ScrollNumber 滚动数字控件 ticker 滚动数字控件 ReadMoreTextView 阅读更多,折叠文本 ExpandableTextView 折叠文本 android-autofittextview 自动调整文字大小 html-textview 展示html标签 BabushkaText 自定义文本样式 Android-TextView-LinkBuilder 文本链接 TextJustify-Android 自动调整文字间隔 SlantedTextView 一个倾斜的TextView,适用于标签效果。 RichText Android平台下的富文本解析器 MixtureTextView Android图文混排、文字环绕图片 VerticalTextView 垂直的Textview JumpingBeans 文字像 Mexican beans 一样跳动 EditText MaterialEditText 智能提醒输入框 android-edittext-validator 输入效验、提醒 ClearEditText 带删除的输入框 PasswordEditText 显示/隐藏密码 MaterialSearchView 一个基于Material