前言
转眼间,2020 年已过去一大半了,2020 年很难,各企业裁员的消息蛮多的,降职,不发年终奖等等。2020 年确实是艰难的一年。然而生活总是要继续,时间不给你丧的机会!如果我们能坚持下来,不断提高自己,说不定会有新的机会。
面试中,网络(http, https, tcp, udp), jvm, 类加载机制等这些基础的知识点是高频出现的,每个程序员都能说上好多。但不一定说到重点,以及理解背后的原理。
我在面试的过程中也经常被问到,于是总结记录了下来。千万不要小瞧这些基础,有时候,你算法,项目经验都过了,但是基础答得不太好。结果可能会通过,但这肯定会影响你的评级,这是特别吃亏的。所以,不如花点时间背一下,理解一下背后的原理。
举一个简单的例子, https 连接过程是怎样的,使用了了哪种加密方式,可以抓包吗,怎样防止抓包,你是否能够对答如下。
废话不多说,开始进入正文。
- ndk_file_crypt.c 实现上面.h文件中的方法。
#include “cn_tsou_ndkfilecrypt_ndk_Cryptor.h”
//加密
JNIEXPORT jstring JNICALL Java_cn_tsou_ndkfilecrypt_ndk_Cryptor_crypt
(JNIEnv *env, jclass jcls, jstring jstr){
return (*env)->NewStringUTF(env,“加密”);
}
//解密
JNIEXPORT jstring JNICALL Java_cn_tsou_ndkfilecrypt_ndk_Cryptor_decrypt
(JNIEnv *env, jclass jcls, jstring jstr){
return (*env)->NewStringUTF(env,“解密”);
}
- 在MainActivity中调用
package cn.tsou.ndkfilecrypt;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import cn.tsou.ndkfilecrypt.ndk.Cryptor;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
-
加密
-
@param view
*/
public void mCrypt(View view){
String crypt = Cryptor.crypt(“”);
Toast.makeText(this,crypt,Toast.LENGTH_LONG).show();
}
/**
-
解密
-
@param view
*/
public void mDecrypt(View view){
String decrypt = Cryptor.decrypt(“”);
Toast.makeText(this,decrypt,Toast.LENGTH_LONG).show();
}
}
- 运行效果图
- WARNING: ABIs [arm64-v8a,armeabi-v7a,armeabi] set by ‘android.injected.build.abi’ gradle flag contained ‘ARMEABI’ not targeted by this project.
清除勾选全部即可
- Error:(81) Android NDK: Application targets deprecated ABI(s): armeabi
Android NDK从r16 beta1开始,不再支持 ARM5 (armeabi)。默认情况下,
Android NDK不会构建ARM5版本。如果在Application.mk配置了构建ARM5版本,会收到类似以下的警告:
Error:(81) Android NDK: Application targets deprecated ABI(s): armeabi
Error:(82) Android NDK: Support for these ABIs will be removed in a future NDK release.
Android系统支持的CPU架构
ARMv5:armeabi,32位
ARMv7:armeabi-v7a,32位
x86:x86,32位
MIPS:mips,32位
ARMv8:arm64-v8a,64位
MIPS64:mips64,64位
x86_64:x86_64,64位
最后
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
Android 基础知识点
Java 基础知识点
Android 源码相关分析
常见的一些原理性问题
希望大家在今年一切顺利,进到自己想进的公司,共勉!
络 + 诸多细节。
还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
Android 基础知识点
Java 基础知识点
Android 源码相关分析
常见的一些原理性问题
[外链图片转存中…(img-3IP2d86a-1649752915949)]
希望大家在今年一切顺利,进到自己想进的公司,共勉!
Android开发不会这些?如何面试拿高薪!