将来的你,一定会感激现在拼命的自己!努力成为自己想要成为的那个人吧!
此项目的目的:
1.记录下一些基础的,以及日常工作、面试中需要的知识点,防止以后自己老年痴呆后忘记了。 2.为了测试自制力,也想要了解下自己到底能不能坚持记录。 3.同时让自己的知识面越来越大,越来越广。努力让自己成为牛逼的人。
<div align=center>
<img src="https://github.com/MaosanDao/AndroidNote/blob/master/logo2.jpeg"/>
</div>
## 目录
### 已经完善的
* [开始](#开始)
* [开发相关](#开发相关)
* [RxJava相关](#rxjava相关)
* [Retrofit相关](#retrofit相关)
* [Activity](#activity相关)
* [基础知识](#基础知识)
* [Java基础知识](#java基础知识)
* [多线程](#多线程)
* [界面相关](#界面相关)
* [框架](#框架)
* [自定义View](#自定义view)
* [动画](#动画)
* [优化](#优化)
* [网络](#网络)
* [蓝牙](#蓝牙)
* [发布应用相关](#发布)
* [进阶](#进阶)
* [Android App开发需要了解的底层知识](#android底层知识)
* [Handler相关](#handler相关)
* [常用工具类](#常用工具类)
* [WebView](#webview)
* [IO](#io)
* [数据库](#数据库)
* [其他](#其他)
* [奇淫技巧](#奇淫技巧)
### 需要完善的
* [草稿记录](#草稿记录)
* [待加](#待加)
* [速记待整理框](#速记待整理框)
## 开始
* [快速搭建App参考步骤](https://github.com/MaosanDao/AndroidNote/blob/master/other/NewP.md)
## 开发相关
* [Xliff的使用](https://github.com/MaosanDao/AndroidQuickCheckList/tree/master/xliff)
* [Android中常用的设计模式简介以及实例代码](https://github.com/MaosanDao/AndroidNote/blob/master/other/DesignMode.md)
## RxJava相关
* [RxJava基本知识与源码解析](https://github.com/MaosanDao/AndroidNote/blob/master/frame/RxJava2.md)
* [(RxJava升级版)RxJava2的相关知识点和部分操作符介绍](https://github.com/MaosanDao/AndroidNote/blob/master/frame/Rxjava2.md)
## Retrofit相关
* [Retrofit2原理初探](https://github.com/MaosanDao/AndroidNote/blob/master/retrofit/retrofit_principle.md)
* [Retrofit 2.0使用指南(直接使用,未使用RxJava配合)](https://github.com/MaosanDao/AndroidNote/blob/master/retrofit/retrofit2_0.md)
* [常用注解示例](https://github.com/MaosanDao/AndroidQuickCheckList/tree/master/retrofit)
* [使用Retrofit上传图片到服务器中](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/retrofit/uploadImage.md)
* [使用Retrofit上传Json数据](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/retrofit/uploadJson.md)
## 基础知识
* [Android序列化及反序列化相关知识点](https://github.com/MaosanDao/AndroidNote/blob/master/basis/Serializable.md)
* [泛型的相关知识](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/basis/Generic.md)
## Activity相关
* [Activity跳转问题](https://github.com/MaosanDao/AndroidNote/blob/master/basis/act_jump.md)
* [Activity、Service、Fragment生命周期与相关知识点](https://github.com/MaosanDao/AndroidNote/blob/master/basis/activity_framgent_service.md)
* [Activity的四种启动模式及IntentFilter匹配规则](https://github.com/MaosanDao/AndroidNote/blob/master/basis/launchMode.md)
* [横竖屏的相关知识点](https://github.com/MaosanDao/AndroidNote/blob/master/basis/DirectionScreen.md)
* [Activity和Fragment的状态保存和恢复](https://github.com/MaosanDao/AndroidNote/blob/master/advanced/SaveRestore.md)
## Java基础知识
* [Java中Transient关键字的作用](https://github.com/MaosanDao/AndroidNote/blob/master/basis/transient.md)
* [Java中synchronized的知识点](https://github.com/MaosanDao/AndroidNote/blob/master/basis/synchronized.md)
* [Java集合相关知识点](https://github.com/MaosanDao/AndroidNote/blob/master/basis/set.md)
* [Java集合相关的面试题整理](https://github.com/MaosanDao/AndroidNote/blob/master/basis/set_interview.md)
* [反射的理解和相关知识点](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/basis/Reflection.md)
* [Java集合的原理和扩容(未完成)](https://github.com/MaosanDao/AndroidNote/blob/master/basis/javaSet.md)
## 多线程
* [关于线程的一些常见知识点](https://github.com/MaosanDao/AndroidNote/blob/master/thread/thread_points.md)
* [Android进程间、线程间的通讯方式汇总](https://github.com/MaosanDao/AndroidNote/blob/master/thread/thread_process.md)
* [不同线程的创建方式整理](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/thread/Thread.md)
## 界面相关
* [RecyclerView和ListView的区别](https://github.com/MaosanDao/AndroidNote/blob/master/view/recyclerview_listview.md)
* [沉侵式的具体做法](https://github.com/MaosanDao/AndroidNote/blob/master/view/ChenQinShi.md)
* [快速暴力的屏幕适配方案](https://github.com/MaosanDao/AndroidNote/blob/master/view/ScreenAdaptation.md)
* [启动时显示默认的图片背景的方法](https://github.com/MaosanDao/AndroidNote/blob/master/view/StartLogoStyle.md)
* [UI布局的时候,常见的问题集合](https://github.com/MaosanDao/AndroidNote/blob/master/view/UiCommonProblem.md)
* [RecyclerView 加载不同的item布局](https://github.com/MaosanDao/AndroidNote/blob/master/view/RecylerViewType.md)
* [点击界面其他部分,隐藏虚拟键盘](https://github.com/MaosanDao/AndroidNote/blob/master/view/hideKeyBoard.md)
* [RecyclerView 自动换行和间距处理](https://github.com/MaosanDao/AndroidNote/blob/master/view/recyclerview2.md)
## 框架
* [Android图片加载图库Glide vs Picasso](https://github.com/MaosanDao/AndroidNote/blob/master/frame/glide_picasso.md)
* [MVC、MVP、MVVM介绍以及相关知识点](https://github.com/MaosanDao/AndroidNote/blob/master/frame/mvc_mvp_mvvm.md)
## 自定义View
* [自定义View](https://github.com/MaosanDao/AndroidNote/blob/master/view/ViewDiy.md)
* [创建自定义Dialog的方法](https://github.com/MaosanDao/AndroidNote/blob/master/view/CustomDialog.md)
* [SurfaceView和View的区别以及一些知识点](https://github.com/MaosanDao/AndroidNote/blob/master/view/surfaceview_view.md)
## 动画
* [(速查表)常用动画集合类](https://github.com/MaosanDao/AndroidNote/blob/master/animation/CommonAnimationMethod.md)
* [窗口转换和元素共享动画](https://github.com/MaosanDao/AndroidNote/blob/master/animation/OtherAnimation.md)
* [Animation知识汇总](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/animation/Animation.md)
## 优化
* [(推荐)Android内存泄漏大解密](https://github.com/MaosanDao/AndroidNote/blob/master/optimization/Summary.md)
* [OOM的产生和解决方法](https://github.com/MaosanDao/AndroidNote/blob/master/optimization/oom.md)
* [ANR相关知识](https://github.com/MaosanDao/AndroidNote/blob/master/optimization/ANR.md)
* [界面卡顿的一些产生原因和解决方法](https://github.com/MaosanDao/AndroidNote/blob/master/optimization/caton.md)
* [Android中进程保活的一些策略](https://github.com/MaosanDao/AndroidNote/blob/master/optimization/keep_alive.md)
## 网络
* [TCP/UDP的区别](https://github.com/MaosanDao/AndroidNote/blob/master/net/tcp_udp.md)
* [Http基础协议详解(摘)](https://github.com/MaosanDao/AndroidNote/blob/master/net/Http1.md)
* [Android Http、Tcp、Https、Socket相关知识点汇总(摘)](https://github.com/MaosanDao/AndroidNote/blob/master/net/http2.md)
## 蓝牙
* [蓝牙相关实用方法集合](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/bluetooth/README.md)
* [Android BLE相关知识点的学习(摘)](https://github.com/MaosanDao/AndroidNote/blob/master/bluetooth/ble_note.md)
## 发布
* [Apk打包流程以及Apk所包含的内容分析](https://github.com/MaosanDao/AndroidNote/blob/master/publish/apk_package.md)
* [多渠道打包](https://github.com/MaosanDao/AndroidNote/blob/master/%20publish/MultiPackaging.md)
* [Apk瘦身指南](https://github.com/MaosanDao/AndroidNote/blob/master/%20publish/mini_apk.md)
* [常用混淆代码](https://github.com/MaosanDao/AndroidNote/blob/master/%20publish/CommonConfusion.md)
## 进阶
* [Android Bitmap高效加载和图片三级缓存机制](https://github.com/MaosanDao/AndroidNote/blob/master/basis/bitmap_lrucache.md)
* [事件分发机制](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/advanced/TouchEvent.md)
## Android底层知识
* [Android PMS和App安装过程分析](https://github.com/MaosanDao/AndroidNote/blob/master/bottom/pms.md)
* [Android ContentProvider的底层通信和相关知识点](https://github.com/MaosanDao/AndroidNote/blob/master/bottom/ContentProvider.md)
* [Android BroadcastReceiver内部启动原理分析](https://github.com/MaosanDao/AndroidNote/blob/master/bottom/BroadcastReceiver.md)
* [Android Service的启动流程原理分析](https://github.com/MaosanDao/AndroidNote/blob/master/bottom/Service.md)
* [Context家族](https://github.com/MaosanDao/AndroidNote/blob/master/bottom/context.md)
* [Android Binder、AIDL、AMS、App启动分析](https://github.com/MaosanDao/AndroidNote/blob/master/bottom/part1.md)
* [Android Binder IPC机制](https://github.com/MaosanDao/AndroidNote/blob/master/advanced/binder.md)
* [Java对象创建时代码的加载顺序](https://github.com/MaosanDao/AndroidNote/blob/master/advanced/java_load.md)
* [Java GC and JVM相关知识点学习](https://github.com/MaosanDao/AndroidNote/blob/master/advanced/Java_GC.md)
* [App启动流程整理](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/advanced/StartProcess.md)
## Handler相关
* [Handler、Message原理概述](https://github.com/MaosanDao/AndroidNote/blob/master/advanced/handler_principle.md)
* [通过问题学习Android Handler机制(摘)](https://github.com/MaosanDao/AndroidNote/blob/master/advanced/Android_Handler.md)
* [HandlerThread相关知识点](https://github.com/MaosanDao/AndroidNote/blob/master/thread/handler_thread.md)
## 常用工具类
* [自定义倒计时工具类](https://github.com/MaosanDao/AndroidNote/blob/master/utils/CountDown.md)
* [zip解压缩工具类](https://github.com/MaosanDao/AndroidNote/blob/master/utils/ZipUtil.md)
* [RecylerView Item间隔工具类](https://github.com/MaosanDao/AndroidNote/blob/master/utils/RecyclerVIewItem.md)
* [WiFi相关方法以及工具类](https://github.com/MaosanDao/AndroidNote/blob/master/utils/WifiFuncition.md)
## WebView
* [Java与H5之间的混合开发](https://github.com/MaosanDao/AndroidNote/blob/master/webview/android_h5.md)
## IO
* [数据写入的一些常用方法](https://github.com/MaosanDao/AndroidNote/blob/master/io/IO.md)
## 数据库
* [GreenDao数据操作工具类](https://github.com/MaosanDao/AndroidNote/blob/master/greenDaoBase.md)
## 其他
* [本地代码库上传至jCenter的详细步骤](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/uploadJcenter/uploadJcenter.md)
* [制作Readme头部标签](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/makeTag/README.md)
* [常用正则表达式列表](https://github.com/MaosanDao/AndroidQuickCheckList/blob/master/other/regexp.md)
* [导入第三方包的几种方法介绍](https://github.com/MaosanDao/AndroidNote/blob/master/other/ImportLib.md)
## 奇淫技巧
* [一些常用的小技巧](https://github.com/MaosanDao/AndroidNote/blob/master/other/someSkills.md)
## 草稿记录
* [扫地机地图相关的知识点](https://github.com/MaosanDao/AndroidNote/blob/master/note/robot_map.md)
## 待加
* Android性能优化([参考文章](https://www.jianshu.com/p/9755da0f4e8f))
* Android单元测试(https://www.jianshu.com/p/827a6179297d https://www.jianshu.com/p/bc99678b1d6e https://www.jianshu.com/p/dba1290f9dc8)
* 如何隐藏应用的桌面图标?
```xml
//在Android注册文件中新增以下说明
<!--只要添加下面这句话,可以隐藏应用图标-->
<data android:host="AuthActivity" android:scheme="com.android.example" />
<!-- 上面这句 -->
<category android:name="android.intent.category.LAUNCHER" />
//切换方法
private fun switchContent(to: Fragment) {
if (mContent !== to) {
val transaction = supportFragmentManager
.beginTransaction()
.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out)
if (!to.isAdded) { // 判断是否被add过
// 隐藏当前的fragment,将 下一个fragment 添加进去
transaction.hide(mContent).add(R.id.main_content, to).commit()
} else {
// 隐藏当前的fragment,显示下一个fragment
transaction.hide(mContent).show(to).commit()
}
mContent = to
}
}
第一个初始化的时候:
supportFragmentManager.beginTransaction().add(R.id.main_content,mKeyFragment).commit()
//mContent为当前的Fragment
mContent = mKeyFragment
切换直接调用switchContent。 其中,只有第一次的时候会触发:initData和onResume。 后面,则只会触发onHiddenChanged方法
Email:Onlywangpei@qq.com
Copyright 2018 vangelis(王裴)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.