├── cocos └── 基础.MD ├── kotlin └── 基础.MD ├── 其他 ├── 面向对象编程.md └── overview.md ├── 进阶题 ├── svga原理.md ├── 马甲包经验.MD ├── APP启动过程.md ├── EventBus原理.md ├── Fresco原理.md ├── OKhttp原理.md ├── 优先级任务队列如何设计.md ├── 组件化和插件化.MD ├── android视图显示过程.md ├── 线程进程APP之间的关系.md ├── RN性能优化.md ├── ANR解决.md ├── 跨进程通讯.md ├── 图片优化.md ├── 卡顿优化.md ├── RXJava.md ├── 两个viewpager嵌套实现左滑右滑子父view联动,解决滑动冲突.md ├── MVC,MVP,MVVM比较.md ├── 内存泄漏.md └── overview.md ├── flutter ├── 基础.MD ├── Dart.MD └── Flutter的渲染原理.MD ├── 海外项目经验 ├── 上架流程.MD └── GooglePay相关.MD ├── 算法 ├── 两个栈实现一个队列.md ├── 加密算法.md ├── 非递归方式生成切比雪夫数列.md ├── 多线程计算1到100的求和.md ├── 常见题型和常见思路.MD ├── overview.md └── 在算法中常用的Java语法小技巧.MD ├── git.md ├── android基础 ├── ServiceDemo │ ├── Readme.md │ ├── app │ │ ├── .gitignore │ │ ├── src │ │ │ ├── main │ │ │ │ ├── res │ │ │ │ │ ├── values │ │ │ │ │ │ ├── dimens.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ ├── menu │ │ │ │ │ │ └── menu_main.xml │ │ │ │ │ ├── layout │ │ │ │ │ │ ├── activity_b.xml │ │ │ │ │ │ ├── content_main.xml │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ └── drawable │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── banana │ │ │ │ │ │ └── servicedemo │ │ │ │ │ │ ├── MainApp.java │ │ │ │ │ │ ├── TestSyncUtil.java │ │ │ │ │ │ ├── DemoService.java │ │ │ │ │ │ ├── BActivity.java │ │ │ │ │ │ ├── UmengCrashHandler.java │ │ │ │ │ │ └── MainActivity.java │ │ │ │ └── AndroidManifest.xml │ │ │ ├── test │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── banana │ │ │ │ │ └── servicedemo │ │ │ │ │ └── ExampleUnitTest.java │ │ │ └── androidTest │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── banana │ │ │ │ └── servicedemo │ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── proguard-rules.pro │ │ ├── build.gradle │ │ └── app.iml │ ├── .gradle │ │ ├── 4.10.1 │ │ │ ├── gc.properties │ │ │ ├── fileChanges │ │ │ │ └── last-build.bin │ │ │ ├── fileHashes │ │ │ │ ├── fileHashes.bin │ │ │ │ ├── fileHashes.lock │ │ │ │ └── resourceHashesCache.bin │ │ │ ├── javaCompile │ │ │ │ ├── taskHistory.bin │ │ │ │ ├── classAnalysis.bin │ │ │ │ └── javaCompile.lock │ │ │ ├── taskHistory │ │ │ │ ├── taskHistory.bin │ │ │ │ └── taskHistory.lock │ │ │ └── fileContent │ │ │ │ └── fileContent.lock │ │ ├── vcs-1 │ │ │ └── gc.properties │ │ └── buildOutputCleanup │ │ │ ├── cache.properties │ │ │ ├── outputFiles.bin │ │ │ └── buildOutputCleanup.lock │ ├── settings.gradle │ ├── .idea │ │ ├── caches │ │ │ ├── gradle_models.ser │ │ │ └── build_file_checksums.ser │ │ ├── encodings.xml │ │ ├── vcs.xml │ │ ├── modules.xml │ │ ├── libraries │ │ │ ├── Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml │ │ │ ├── Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml │ │ │ ├── Gradle__com_google_android_play_core_1_6_0_aar.xml │ │ │ ├── Gradle__junit_junit_4_12_jar.xml │ │ │ ├── Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml │ │ │ ├── Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml │ │ │ ├── Gradle__javax_inject_javax_inject_1_jar.xml │ │ │ ├── Gradle__com_squareup_javawriter_2_1_1_jar.xml │ │ │ ├── Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml │ │ │ ├── Gradle__org_jetbrains_annotations_16_0_1_jar.xml │ │ │ ├── Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml │ │ │ ├── Gradle__androidx_arch_core_core_common_2_0_0_jar.xml │ │ │ ├── Gradle__com_google_guava_listenablefuture_1_0_jar.xml │ │ │ ├── Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml │ │ │ ├── Gradle__androidx_annotation_annotation_1_1_0_alpha02_jar.xml │ │ │ ├── Gradle__androidx_collection_collection_1_1_0_alpha03_jar.xml │ │ │ ├── Gradle__androidx_test_runner_1_1_1_aar.xml │ │ │ ├── Gradle__androidx_lifecycle_lifecycle_common_2_1_0_alpha03_jar.xml │ │ │ ├── Gradle__androidx_loader_loader_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_test_monitor_1_1_1_aar.xml │ │ │ ├── Gradle__androidx_cardview_cardview_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_concurrent_concurrent_futures_1_0_0_alpha02_jar.xml │ │ │ ├── Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_customview_customview_1_0_0_aar.xml │ │ │ ├── Gradle__com_jakewharton_timber_timber_4_7_1_aar.xml │ │ │ ├── Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml │ │ │ ├── Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_test_espresso_espresso_core_3_1_1_aar.xml │ │ │ ├── Gradle__androidx_activity_activity_1_0_0_alpha05_aar.xml │ │ │ ├── Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml │ │ │ ├── Gradle__androidx_savedstate_savedstate_1_0_0_alpha02_aar.xml │ │ │ ├── Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml │ │ │ ├── Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_vectordrawable_vectordrawable_1_1_0_alpha01_aar.xml │ │ │ ├── Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_alpha03_aar.xml │ │ │ ├── Gradle__androidx_test_espresso_espresso_idling_resource_3_1_1_aar.xml │ │ │ ├── Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_appcompat_appcompat_resources_1_1_0_alpha03_aar.xml │ │ │ ├── Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_alpha03_aar.xml │ │ │ ├── Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_alpha02_aar.xml │ │ │ ├── Gradle__androidx_print_print_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_core_core_1_1_0_alpha05_aar.xml │ │ │ ├── Gradle__androidx_transition_transition_1_0_1_aar.xml │ │ │ ├── Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml │ │ │ ├── Gradle__androidx_fragment_fragment_1_1_0_alpha05_aar.xml │ │ │ ├── Gradle__androidx_appcompat_appcompat_1_1_0_alpha03_aar.xml │ │ │ ├── Gradle__androidx_viewpager2_viewpager2_1_0_0_alpha02_aar.xml │ │ │ ├── Gradle__com_google_android_material_material_1_1_0_alpha06_aar.xml │ │ │ ├── Gradle__androidx_recyclerview_recyclerview_1_1_0_alpha03_aar.xml │ │ │ ├── Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml │ │ │ └── Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_alpha01_aar.xml │ │ ├── runConfigurations.xml │ │ ├── gradle.xml │ │ ├── inspectionProfiles │ │ │ └── Project_Default.xml │ │ ├── misc.xml │ │ ├── codeStyles │ │ │ └── Project.xml │ │ └── dbnavigator.xml │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── local.properties │ ├── build.gradle │ ├── gradle.properties │ ├── ServiceDemo.iml │ ├── gradlew.bat │ └── gradlew ├── ActivtyStack.md ├── 保活.md ├── Fragment.md ├── 四大组件.md ├── ActivityManagerService.md ├── 布局.md ├── launcher启动app过程.md ├── 数据库.md ├── Context.md ├── 动画.md ├── BroadcastReceiver.md ├── 其他.md ├── Window.md ├── ContentProvider.md ├── View.md ├── SharedPreferences.md ├── bitmap.md ├── Activity.md ├── Service.md ├── touch事件分发.md ├── handler机制.md ├── 线程优先级进程优先级.md └── overview.md ├── java基础 ├── 接口.md ├── socket.md ├── 设计模式.md ├── 关键字相关问题.md ├── String.md ├── 类加载机制.md ├── JVM.md ├── ThreadLocal.md ├── 四种引用类型.md ├── 线程安全.md ├── 集合.md ├── overview.md └── 线程池.md ├── 程序题.md ├── images ├── 生命周期.jpg └── context使用范围.png ├── 拓展-好文章清单.md ├── 项目 └── overview.md └── README.md /cocos/基础.MD: -------------------------------------------------------------------------------- 1 | ## 2 | -------------------------------------------------------------------------------- /kotlin/基础.MD: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /其他/面向对象编程.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/svga原理.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/马甲包经验.MD: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /flutter/基础.MD: -------------------------------------------------------------------------------- 1 | ## 2 | -------------------------------------------------------------------------------- /其他/overview.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /海外项目经验/上架流程.MD: -------------------------------------------------------------------------------- 1 | ## 2 | -------------------------------------------------------------------------------- /算法/两个栈实现一个队列.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/APP启动过程.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/EventBus原理.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/Fresco原理.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/OKhttp原理.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/优先级任务队列如何设计.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/组件化和插件化.MD: -------------------------------------------------------------------------------- 1 | ## 2 | -------------------------------------------------------------------------------- /git.md: -------------------------------------------------------------------------------- 1 | ## git rebase 作用? 2 | -------------------------------------------------------------------------------- /海外项目经验/GooglePay相关.MD: -------------------------------------------------------------------------------- 1 | ## 2 | -------------------------------------------------------------------------------- /算法/加密算法.md: -------------------------------------------------------------------------------- 1 | ## MD5算法特性 2 | -------------------------------------------------------------------------------- /算法/非递归方式生成切比雪夫数列.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/android视图显示过程.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/线程进程APP之间的关系.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /进阶题/RN性能优化.md: -------------------------------------------------------------------------------- 1 | ## 如何做RN性能优化 2 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /java基础/接口.md: -------------------------------------------------------------------------------- 1 | ## 接口和抽象类区别? 2 | #### 3 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/gc.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/vcs-1/gc.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /程序题.md: -------------------------------------------------------------------------------- 1 | ## 单例的各种写法? 2 | 3 | ##recyclerview的写法? 4 | -------------------------------------------------------------------------------- /进阶题/ANR解决.md: -------------------------------------------------------------------------------- 1 | ## 导致ANR的原因 2 | 3 | ## ANR解决的方法 4 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /算法/多线程计算1到100的求和.md: -------------------------------------------------------------------------------- 1 | # 多线程计算1到100的求和,并有单独线程完成输出如何做到? 2 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/fileChanges/last-build.bin: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /android基础/ActivtyStack.md: -------------------------------------------------------------------------------- 1 | 2 | ## Activty栈由谁管理? 3 | #### 参考答案:AMS管理 4 | -------------------------------------------------------------------------------- /java基础/socket.md: -------------------------------------------------------------------------------- 1 | ## 简述socket 2 | #### 网络传输层实现,一般会实现tcp或者udp协议,进行跨进程跨平台通信 3 | -------------------------------------------------------------------------------- /android基础/保活.md: -------------------------------------------------------------------------------- 1 | 保活方案? 2 | 参考文档:https://juejin.im/post/5baedde6f265da0a8d369eb2 3 | -------------------------------------------------------------------------------- /java基础/设计模式.md: -------------------------------------------------------------------------------- 1 | 1.代理模式 2 | https://www.runoob.com/design-pattern/proxy-pattern.html 3 | -------------------------------------------------------------------------------- /android基础/Fragment.md: -------------------------------------------------------------------------------- 1 | ## Fragment的全部生命周期 2 | https://juejin.im/post/6844903752114126855 3 | -------------------------------------------------------------------------------- /java基础/关键字相关问题.md: -------------------------------------------------------------------------------- 1 | ## final关键字用法? 2 | #### https://www.cnblogs.com/dolphin0520/p/3736238.html 3 | -------------------------------------------------------------------------------- /images/生命周期.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/images/生命周期.jpg -------------------------------------------------------------------------------- /java基础/String.md: -------------------------------------------------------------------------------- 1 | ## StringBuffer与StringBuilder区别? 2 | #### StringBuilder线程不安全 3 | #### StringBuffer线程安全 4 | -------------------------------------------------------------------------------- /java基础/类加载机制.md: -------------------------------------------------------------------------------- 1 | ## java类加载机制是怎么样的? 2 | #### 加载-验证-准备-解析-初始化 3 | ## 类如何不被继承? 4 | #### 加final或基类构造函数声明为private 5 | -------------------------------------------------------------------------------- /images/context使用范围.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/images/context使用范围.png -------------------------------------------------------------------------------- /android基础/四大组件.md: -------------------------------------------------------------------------------- 1 | ## 四大组件是什么? 2 | #### Activity,Service,ContentProvider,BroadcastReceiver 3 | ## 四大组件分别是做什么的? 4 | #### 5 | -------------------------------------------------------------------------------- /android基础/ActivityManagerService.md: -------------------------------------------------------------------------------- 1 | 参考文章 2 | 3 | https://wiki.jikexueyuan.com/project/deep-android-v2/activity.html 4 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/buildOutputCleanup/cache.properties: -------------------------------------------------------------------------------- 1 | #Sun May 26 16:02:43 CST 2019 2 | gradle.version=4.10.1 3 | -------------------------------------------------------------------------------- /android基础/布局.md: -------------------------------------------------------------------------------- 1 | ## 问题1:android布局有哪些? 2 | #### LinearLayout,RelativeLayout,FrameLayout,TableLayout,GridLayout,AbsoluteLayout,ConstraintLayout 3 | -------------------------------------------------------------------------------- /android基础/launcher启动app过程.md: -------------------------------------------------------------------------------- 1 | 参考文章:https://blog.csdn.net/qq_17250009/article/details/52204918 2 | 3 | 总体过程比较复杂,这里就放些参考文章,具体过程面试怎么达,还请小伙伴们自己总结自己提炼语言哈~ 4 | 5 | -------------------------------------------------------------------------------- /java基础/JVM.md: -------------------------------------------------------------------------------- 1 | ## JVM内存区域划分? 2 | #### 线程共享:堆、方法区,线程独享:虚拟机方法栈、本地方法栈、程序计数器 3 | #### 参考文档 https://www.cnblogs.com/ityouknow/p/5610232.html 4 | 5 | ## JVM上面和下面都有线程的说法对不对? 6 | -------------------------------------------------------------------------------- /算法/常见题型和常见思路.MD: -------------------------------------------------------------------------------- 1 | 链表题-》经常使用快慢指针 2 | 堆类型题-》使用priorityQueen比较多 3 | O(1)时间要求,要考虑使用HashMap 4 | Tree题要掌握好,前中后三序遍历方法 5 | 递归的本质是使用系统栈,符合先入后出规则的算法题,基本都可以考虑递归 6 | 矩阵题,使用深度和广度优先算法 7 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.idea/caches/gradle_models.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.idea/caches/gradle_models.ser -------------------------------------------------------------------------------- /拓展-好文章清单.md: -------------------------------------------------------------------------------- 1 | 1.直播原理 2 | > https://github.com/f2e-journey/xueqianban/issues/61 3 | 4 | 2.长连接 5 | > https://www.zhihu.com/question/22677800 6 | 7 | > 长连接实现方案库:netty库(socket库) 8 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android基础/ServiceDemo/.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /android基础/ServiceDemo/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16dp 3 | 50dp 4 | 5 | -------------------------------------------------------------------------------- /android基础/数据库.md: -------------------------------------------------------------------------------- 1 | 2 | ## 问题1:android数据库支持多线程访问么? 3 | #### 参考答案:不支持,要使用SQLHelper管理,多线程只用一个SQLHelper对象 4 | ## 问题2:database is locked如何发生的? 5 | #### 参考答案:多线程同时读写,或者多线程多个SQLHelper对象同时写 6 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/fileHashes/fileHashes.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/fileHashes/fileHashes.bin -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/fileHashes/fileHashes.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/fileHashes/fileHashes.lock -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/javaCompile/taskHistory.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/javaCompile/taskHistory.bin -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/taskHistory/taskHistory.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/taskHistory/taskHistory.bin -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/buildOutputCleanup/outputFiles.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/buildOutputCleanup/outputFiles.bin -------------------------------------------------------------------------------- /进阶题/跨进程通讯.md: -------------------------------------------------------------------------------- 1 | ## 跨进程通讯手段有哪些? 2 | #### AIDL、MESSAGER、Intent、Binder、共享内存、 3 | ## binder原理? 4 | 5 | ## binder通讯涉及多少块内存,几次内存拷贝? 6 | 7 | ## AIDL的实现方法?(具体过程,方法名,参数) 8 | 9 | ## 如何决定AIDL的方向? 10 | -------------------------------------------------------------------------------- /android基础/Context.md: -------------------------------------------------------------------------------- 1 | ## 四大组件context哪些可以弹dialog? 2 | 3 | ![四大组件context权限](https://github.com/knowledgeIsMoney/android-interveiw/blob/master/images/context%E4%BD%BF%E7%94%A8%E8%8C%83%E5%9B%B4.png) 4 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/fileContent/fileContent.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/fileContent/fileContent.lock -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/javaCompile/classAnalysis.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/javaCompile/classAnalysis.bin -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/javaCompile/javaCompile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/javaCompile/javaCompile.lock -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/taskHistory/taskHistory.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/taskHistory/taskHistory.lock -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ServiceDemo 3 | Settings 4 | 5 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/4.10.1/fileHashes/resourceHashesCache.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/4.10.1/fileHashes/resourceHashesCache.bin -------------------------------------------------------------------------------- /android基础/ServiceDemo/.gradle/buildOutputCleanup/buildOutputCleanup.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/.gradle/buildOutputCleanup/buildOutputCleanup.lock -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /进阶题/图片优化.md: -------------------------------------------------------------------------------- 1 | ## 常用图片区别 2 | png:可无损压缩,有A通道 3 | jpeg:无A通道,有损压缩 4 | webp:体积更小,可动画,有A通道 5 | 6 | 参考文章: 7 | > https://www.zhihu.com/question/27201061 8 | 9 | > https://juejin.im/post/5b32ea55e51d4558bf7c45e0 10 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowledgeIsMoney/android-interveiw/HEAD/android基础/ServiceDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android基础/动画.md: -------------------------------------------------------------------------------- 1 | ## 动画种类? 2 | #### 帧动画,补间动画,属性动画 3 | ## 三种动画差别? 4 | #### 参考文章:https://blog.csdn.net/kifile/article/details/40584903, 5 | #### 参考答案:待补充 6 | ## 动画原理? 7 | #### 8 | ## 补间动画种类? 9 | #### 伸缩、位移、透明度、反转 10 | -------------------------------------------------------------------------------- /java基础/ThreadLocal.md: -------------------------------------------------------------------------------- 1 | 2 | #### 参考文章 3 | ##### https://juejin.im/post/5ac2eb52518825555e5e06ee 4 | ##### http://www.jasongj.com/java/threadlocal/ 5 | #### 参考答案 6 | ##### threadlocal是为thread提供子线程自有的对象的拷贝的方法,由map实现,每个线程的对象的值都可以不一样 7 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /flutter/Dart.MD: -------------------------------------------------------------------------------- 1 | 1. dart 所有变量都是对象 2 | 2.dart 可变变量类型dynamic 和 Object 3 | 3.dart final 运行时常量,const编译时常量 4 | 4.dart 级连运算符 .. new Person()..setName("Bob")..setAge(20)..save(); 5 | 5.dart _代表私有,构造函数不能重载 6 | 6.dart with 方法相当于接口实现,但可以接类定义 7 | 7. 8 | -------------------------------------------------------------------------------- /算法/overview.md: -------------------------------------------------------------------------------- 1 | 1.[多线程计算1到100的求和,并有单独线程完成输出如何做到?](https://github.com/knowledgeIsMoney/android-interveiw/blob/master/%E7%AE%97%E6%B3%95/%E5%A4%9A%E7%BA%BF%E7%A8%8B%E8%AE%A1%E7%AE%971%E5%88%B0100%E7%9A%84%E6%B1%82%E5%92%8C.md) 2 | 2.[切比雪夫序列第N项值] 3 | 3.[单链表如何判断是否有环] 4 | -------------------------------------------------------------------------------- /android基础/BroadcastReceiver.md: -------------------------------------------------------------------------------- 1 | 2 | ## 注册广播有哪几种方式? 3 | #### 动态注册 不是常驻,应用关闭后不能监测 4 | #### 静态注册 常驻,应用不开也能接收广播 5 | 6 | ## 优先级谁高? 7 | #### 8 | #### 可以设置优先级 9 | 10 | ## 多次注册有啥问题? 11 | #### 一个消息处理多次 12 | 13 | ## 广播阻塞有啥问题? 14 | -------------------------------------------------------------------------------- /进阶题/卡顿优化.md: -------------------------------------------------------------------------------- 1 | 卡顿原理: 2 | https://blog.csdn.net/LF_HYCZ/article/details/76034457 3 | https://blog.csdn.net/lmj623565791/article/details/58626355 4 | https://blog.csdn.net/lmj623565791/article/details/45556391/ 5 | https://blog.csdn.net/u011240877/article/details/54347396 6 | -------------------------------------------------------------------------------- /android基础/其他.md: -------------------------------------------------------------------------------- 1 | ## onCreate里用View post一个runnable,回调了是否可以get宽高 2 | #### 可以 3 | ## android 异步处理方式? 4 | #### https://www.jianshu.com/p/00b130319864 5 | ## 每个进程的主线程是一个线程么? 6 | #### 不是,每个进程一个主线程 7 | 8 | ## 两个等号和equels区别? 9 | #### https://www.jianshu.com/p/9cbed9f33a4d 10 | -------------------------------------------------------------------------------- /android基础/Window.md: -------------------------------------------------------------------------------- 1 | ## Activity、Window、View三者之间的关系? 2 | #### Activity包含Window包含View相互管理 3 | #### 参考:https://blog.csdn.net/freekiteyu/article/details/79408969 4 | ## ViewRootImpl作用? 5 | #### https://dandanlove.com/2017/12/11/viewrootimpl-activity/ 6 | #### 是View的根节点,管理View树的绘制流程 7 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /进阶题/RXJava.md: -------------------------------------------------------------------------------- 1 | ## 对RXJava的理解? 2 | 3 | #### 参考文章 4 | >https://blog.csdn.net/TellH/article/details/71534704 5 | 6 | >https://www.jianshu.com/p/88aacbed8aa5 7 | 8 | >https://www.jianshu.com/p/182278585aa5 9 | 10 | ## Rxjava中Observer和Subscriber的小区别 11 | #### Subscriber观察一次,Observer一直观察 12 | -------------------------------------------------------------------------------- /进阶题/两个viewpager嵌套实现左滑右滑子父view联动,解决滑动冲突.md: -------------------------------------------------------------------------------- 1 | ## 问题3:两个viewpager嵌套实现左滑右滑子父view联动,解决滑动冲突? 2 | #### 内层viewpager重写dispatchTouchEvent方法,监听到touch事件时getParent().requestDisallowInterceptTouchEvent(true);getParent().requestDisallowInterceptTouchEvent(false);阻止父viewpager拦截事件,不过最新版本貌似直接嵌套两个viewpager就可以了不需要解决冲突 3 | -------------------------------------------------------------------------------- /android基础/ContentProvider.md: -------------------------------------------------------------------------------- 1 | ## provider主要用途 2 | #### 数据共享 3 | 4 | ## provider的call方法干什么用的? 5 | #### call(@NonNull Uri uri, @NonNull String method, @Nullable String arg, @Nullable Bundle extras),调用provider方法获取数据用的 6 | 7 | ## ContentProvider对象实例化什么时候开始的? 8 | #### 应用启动时由AMS初始化的 9 | 10 | ## 11 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun May 26 11:01:49 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 7 | -------------------------------------------------------------------------------- /项目/overview.md: -------------------------------------------------------------------------------- 1 | ## 如何展现自己工作中的亮点? 2 | #### 平时积累上,要主要把自己解决的难题记录下来,把相关的知识点学透吃透,这样讲出来可能就比较牛逼了,如果实在没有牛逼的亮点。也可以找找你做的项目中别人写的或解决的问题你觉得很牛逼的,把他的源码好好研究几遍,确保学透吃透,就好像是自己做过一遍一样,这样面试时拿出来讲也是很牛逼的,就跟自己做的一样,但是要切记一定要研究明白,否则被问住了就适得其反了。当然最重要的还是自己平时的积累,内功深了自然无招胜有招! 3 | #### 另外讲述的时候也要讲究技巧,就算不难的东西也能说的很难,请大家可以参考下: https://m.igetget.com/share/course/article/article_id/86140 4 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android基础/View.md: -------------------------------------------------------------------------------- 1 | ## 何时可以获取宽高? 2 | #### 参考文章:https://blog.csdn.net/hardworkingant/article/details/77278811 3 | #### onCreate,onstart,onresume都不可以获得view的宽高,最简单的获取方法是调用view的post方法在runnable中获取。其他方法在参考文章中 4 | ## 渲染经历的哪几个方法? 5 | #### onMeasure测量宽高,onLayout在父布局的位置及margin等,onDraw画的步骤 6 | ## onDraw的调用时机 7 | ## https://juejin.im/post/6844903502276198407 8 | ## 看draw使用调用,draw调用取决于PFLAG_SKIP_DRAW标志位,PFLAG_DIRTY_OPAQUE决定是否调用onDraw 9 | -------------------------------------------------------------------------------- /java基础/四种引用类型.md: -------------------------------------------------------------------------------- 1 | ## 问题1:四种引用类型都是什么?区别是什么? 2 | #### 参考文章:https://blog.csdn.net/u014532217/article/details/79184412 3 | #### 参考答案: 4 | 强引用-FinalReference~~~强引用是默认引用类型,强引用在程序内存不足(OOM)的时候也不会被回收 5 | 软引用-SoftReference~~~软引用在程序内存不足时,会被回收,内存充足则不回收,用于易造成oom又常用的对象,如图片的bitmap 6 | 弱引用-WeakReference~~~弱引用就是只要JVM垃圾回收器发现了它,就会将之回收,用于易造成oom又不常用或已回收就不需要处理的对象,如handler持有的activity对象 7 | 虚引用-PhantomReference~~~虚引用就是只要JVM垃圾回收器发现了它,就会将之回收,要搭配引用队列使用,回收时会标记引用队列,用于检查对象是否被回收 8 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Sun May 26 11:01:50 CST 2019 8 | ndk.dir=/Users/bobsha/Downloads/android-sdk-macosx/ndk-bundle 9 | sdk.dir=/Users/bobsha/Downloads/android-sdk-macosx 10 | -------------------------------------------------------------------------------- /java基础/线程安全.md: -------------------------------------------------------------------------------- 1 | ## 什么是线程安全? 2 | #### 线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中使用而不会出现问题 3 | ## 同步锁是满足哪些条件才达到线程安全的? 4 | #### 1.原子性:操作是不可分,必须连续完成 5 | #### 2.可见性:可见性是指一个线程对共享变量的修改,对于另一个线程来说是否是可以看到的 6 | #### 3.有序性:有序性是指程序在执行的时候,程序的代码执行顺序和语句的顺序是一致的(Java编译器和处理器可能对指令重排序) 7 | ## volatile关键字作用? 8 | #### 保证可见性和有序性,直接读取内存数据,不使用工作内存,保证变量的操作是不会被重排序的 9 | #### https://www.cnblogs.com/dolphin0520/p/3920373.html 10 | ## 如何用四个线程实现1...N的自增,并通知另一线程打印结果 11 | 12 | ## 锁的参考文章:https://tech.meituan.com/2018/11/15/java-lock.html 13 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/java/com/banana/servicedemo/MainApp.java: -------------------------------------------------------------------------------- 1 | package com.banana.servicedemo; 2 | 3 | import android.app.Application; 4 | 5 | import timber.log.Timber; 6 | 7 | /** 8 | * Created by bobsha on 2019/6/1. 9 | */ 10 | public class MainApp extends Application { 11 | @Override 12 | public void onCreate() { 13 | super.onCreate(); 14 | UmengCrashHandler.getInstance().init(this); 15 | Timber.plant(new Timber.DebugTree()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /android基础/ServiceDemo/app/src/main/res/layout/activity_b.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 |