android框架

金三银四,磨砺锋芒;剑指大厂,扬帆起航(最全Android开发工程师面试指南)

隐身守侯 提交于 2020-01-16 00:52:18
引言 元旦匆匆而过,2020年的春节又接踵而来,大家除了忙的提着裤子加班、年底冲冲冲外,还有着对于明年的迷茫和期待! 2019年有多少苦涩心酸,2020年就有更多幸福美好,加油,奥利给!怀着一颗积极向上的心,来面对未来每一天的挑战! 所谓“兵马未动,粮草先行”,我们打响明天的战役也需要精神食粮来做后勤保障才是。 在此我整理了一份安卓开发面试指南,希望对磨砺锋芒、奋发向上的小伙伴有所帮助,祝你早日剑指大厂,扬帆起航,奥利给! 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原子操作

混合移动App干货:一篇就可以彻底搞懂!

别来无恙 提交于 2020-01-15 23:31:43
引言 本文会详细的讲解什么是混合App开发、混合App开发概念、原理、区别、为什么要学习混合App、混合App开发的几种方式以及具体的环境配置和踩坑指南等干货十足。 1-什么是混合移动App开发 苹果上的软件是如何开发出来的:使用的是 OC、或者使用Swift这门语言 安卓平台上的软件又是如何开发出来的:使用安卓相关的语言开发的,Java,安卓的控件进行开发 苹果和安卓平台上共有的软件是如何开发出来的:腾讯招两套开发人员【开发组】,手机京东 前端移动 App(Application)开发技术,去开发手机端的应用程序; 前端的混合移动App开发技术,并没有使用 苹果 或 安卓 官方推荐的 开发平台和开发方式,而是抛弃了 官方提供的方式,使用 前端的独有的技术进行移动App开发体验; 什么是移动App开发:通俗的理解,就是把开发Web网站的技 (HTML+CSS+JS),通过某种方式,移植到移动App开发上进行使用,这种利用Web开发技术进行移动端开发体验的方式,叫做混合移动App开发! 关于移动App开发,需要知道的几个概念: 原生开发:它的英文单词是(NativeApp),指的就是使用 IOS、Android 官方提供的工具、开发平台、配套语言进行 手机App开发的方式; 混合开发:(HybirdApp)就是使用前端已有的技术,HTML + CSS + JS

Google Breakpad原理及说明

守給你的承諾、 提交于 2020-01-15 18:27:51
作者:lds( lds2012@gmail.com ) 日期:2017-03-24 一. BreakPad简介 Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合。 Breakpad由三个主要组件: client,以library的形式内置在你的应用中,当崩溃发生时写 minidump文件 symbol dumper, 读取由编译器生成的调试信息(debugging information),并生成 symbol file processor, 读取 minidump文件 和 symbol file ,生成可读的c/c++ Stack trace. 简单来说就是一个生成 minidump,一个生成symbol file,然后将其合并处理成可读的Stack trace。 二. MiniDump文件格式 minidump文件格式是由微软开发的用于崩溃上传,它包括: 当dump生成时进程中一系列executable和shared libraries, 包括这些文件的文件名和版本号。 进程中的线程列表,对于每个线程,minidump包含它在寄存器中的状态,线程的stack memory内容。这些数据都是未解析的字节流,Breakpad client通常没有调试信息(debugging information)能生成函数名,行号,甚至无法确定stack frame的边界

环境搭建及helloworld

冷暖自知 提交于 2020-01-15 08:58:16
----------- 磨刀不误砍材工 引言 本系列适合 0 基础的人员,因为我就是从 0 开始的,此系列记录我步入 Android 开发的一些经验分享,望与君共勉!作为 Android 队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教。 在开始 Android 开发之旅启动之前,首先要搭建环境,然后创建一个简单的 HelloWorld 。本文的主题如下: · 1 、环境搭建 o 1.1 、 JDK 安装 o 1.2 、 Eclipse 安装 o 1.3 、 Android SDK 安装 o 1.4 、 ADT 安装 o 1.5 、 Adding Platforms and Other Components o 1.6 、创建 AVD 。 · 2 、 HelloWorld n 安装 JDK 。 由于 android 的开发语言是 java ,所以必须要安装 JDK. 1. 下载 JDK : http://www.oracle.com/technetwork/java/javase/downloads/index.html 比如这里我下的版本是:jdk-7u1-windows-i586.exe (当然不同系统会有不同的版本,都会有相应的命名标识的,如:这里就有 windows ) 2. 安装 JDK 。主要是傻瓜式的,按照提示一步步来。 3. 检验安装完成。打开 cmd 窗口

RN的打包

安稳与你 提交于 2020-01-15 08:02:53
1、首先执行以下命令 在android目录下    keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000    这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会生成一个叫做 my-release-key.keystore 的密钥库文件。 在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为10000天。--alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。 2、设置gradle变量   把 my-release-key.keystore 文件放到你工程中的 android/app 文件夹下   编辑android /gradle.properties (没有这个文件你就创建一个),添加如下的代码(注意把其中的 **** 替换为相应密码)    MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=***** MYAPP_RELEASE

Android开发(1) 日志

孤街浪徒 提交于 2020-01-15 07:24:32
默认的Log.e等方法,不显眼,调用底层库的情况下,底层库的打印太多了。自己的日志很难找,虽然能够搜索,但是自己的日志会夹在一堆的别人的日志里面。 想找一个方便的日志插件。 参考: Android Log框架推荐 ,同时在github上搜索“Android Log",选择logger( https://github.com/orhanobut/logger )作为插件。 基本的使用上面有说明的,我另外想要在Android界面上看到日志,在程序运行中。 写了个MyLogAdapter继承自AndroidLogAdapter,在重写的log方法中将日志保存下来,然后在界面上显示出来。 private static List<LogInfo> logs=new LinkedList<LogInfo>(); public static List<String> logTags =new LinkedList<>(); @Override public void log(int priority, @Nullable String tag, @NonNull String message) { if(tag!=null && !logTags.contains(tag)){ logTags.add(tag); } SimpleDateFormat formatter=new

Android混合开发之WebView与Javascript交互

依然范特西╮ 提交于 2020-01-15 05:41:34
前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与java互相调用的需求。它就是WebViewJavascriptBridge。 学习动机: 先看下之前的解决办法: Android混合开发之WebView与Javascript交互 最近棒棒安全的一个市场推广来我们公司推广他们的产品,当时也没太引起我的注意,后来这个市场推广人员把我们的app的进行了他们的安全验证,然后发给我一份检测报告,关于WebView的检测内容大致如下: 其实目前公司采用H5的业务都是相对不是很重要的一些业务,而且安全性要求相对比较低,不过作为技术负责人的我,觉得现在很有必要尽快寻找一个相对安全的方式来解决这个问题,算是未雨绸缪吧。经过搜过资料寻找的解决办法就是使用WebViewJavascriptBridge来实现Js与Java的互相调用。 WebViewJavascriptBridge介绍: WebViewJavascriptBridge是WebView和Js交互通信的桥梁,用作者的话来说就是实现java和js的互相调用的桥梁。替代了WebView的自带的JavascriptInterface的接口,使得开发者更方便的让js和native灵活交互

Android OpenCV(零):OpenCV Android SDK

浪尽此生 提交于 2020-01-15 01:18:34
OpenCV OpenCV,全称Open Source Computer VisionLibrary,是基于C/C++编写的,是BSD开源许可的计算机视觉开发框架,其开源协议允许在学术研究与商业应用开发中免费使用它。OpenCV支持Windows、Linux、Mac OS、iOS与Android操作系统上的应用开发。 OpenCV Android SDK OpenCV Android SDK 是OpenCV针对Android平台提供的开发工具包。Android应用开发一般采用Java或者Kotlin语言进行,而OpenCV主要模块采用C、C++语言编制,因此,我们需要通过JNI技术,实现JAVA或者Kotlin调用OpenCV算法模块的目的。 下载 官网下载地址(https://opencv.org/releases/) 选择OpenCV版本下的 Android SDK概述 SDK目录结构如下: OpenCV-android-sdk |_ samples |_ sdk | |_ etc | |_ java | |_ libcxx_helper | |_ native | |_ 3rdparty | |_ jni | |_ libs | |_ arm64-v8a | |_ armeabi-v7a | |_ x86 | |_ x86_64 | |_ staticlibs | |_

Kotlin APP首页主流框架搭建DrawerLayout+NavigationView+Toolbar+ViewPager+BottomNavigationView

泄露秘密 提交于 2020-01-14 22:06:24
效果 页面结构解析 这是一个比较常见的APP首页的结构,侧边栏+主页,侧边栏里是一些菜单,主页由底部菜单控制内容区,内容区是可滑动的子页面。整体比较舒服合理,各自为阵,却又能关联在一起,加上又是大众喜爱的 Material Design 风格,所以成为了当下APP首页的主流结构。 上图是做的一个简单的思维导图,并不复杂,理清了结构就能事半功倍。 页面布局 1.首页 即整个大的容器。 <?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".module

Android 智能刷新框架SmartRefreshLayout

不想你离开。 提交于 2020-01-14 12:18:43
原链接 SmartRefreshLayout是一个“聪明”或者“智能”的下拉刷新布局,由于它的“智能”,它不只是支持所有的View,还支持多层嵌套的视图结构。它继承自ViewGroup 而不是FrameLayout或LinearLayout,提高了性能。 也吸取了现在流行的各种刷新布局的优点,包括谷歌官方的 SwipeRefreshLayout ,其他第三方的 Ultra-Pull-To-Refresh 、 TwinklingRefreshLayout 。还集成了各种炫酷的 Header 和 Footer。 SmartRefreshLayout的目标是打造一个强大,稳定,成熟的下拉刷新框架,并集成各种的炫酷、多样、实用、美观的Header和Footer。 SmartRefreshLayout官网 导入依赖 在build.gradle中添加依赖 //1.1.0 API改动过大,老用户升级需谨慎 compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14' compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-14'//没有使用特殊Header,可以不加这行 compile 'com.android.support:appcompat-v7