ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

244,带你快速通过字节跳动面试

2021-12-27 11:01:58  阅读:179  来源: 互联网

标签:username 字节 面试 244 result login password android LOG


#include <com_ldw_hello_BridgeUtils.h>

void JNI_show()

{

__android_log_print(ANDROID_LOG_ERROR,“jni_show”, “Function from FunUtils.cpp form void funciotn”);

return;

}

#ifdef __cplusplus

extern “C” {

#endif

/*

  • Class: com_ldw_hello_BridgeUtils

  • Method: hello_jni

  • Signature: ()V

*/

JNIEXPORT void JNICALL Java_com_ldw_hello_BridgeUtils_hello_1jni

(JNIEnv * env, jobject obj)

{

//return env->NewStringUTF(“Function from FunUtils.cpp”);

JNI_show();

}

/*

  • Class: com_ldw_hello_BridgeUtils

  • Method: hello_jni_string

  • Signature: ()Ljava/lang/String;

*/

JNIEXPORT jstring JNICALL Java_com_ldw_hello_BridgeUtils_hello_1jni_1string

(JNIEnv * env, jobject obj)

{

return env->NewStringUTF(“Function from FunUtils.cpp”);

}

#ifdef __cplusplus

}

#endif

login.cpp模拟向服务器发送json数据,同时服务器返回一个JNI的数据JNI_TURE,来作为返回值返回到java层,完成登录成功的过程

//

// Created by Administrator on 2019/10/13.

//

#include “login.h”

#include <android/log.h>

/*

  • Class: com_ldw_hello_BridgeUtils

  • Method: login

  • Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z

*/

JNIEXPORT jboolean JNICALL Java_com_ldw_hello_BridgeUtils_login

(JNIEnv * env, jobject obj, jstring jni_username, jstring jni_password, jboolean jni_isdriver)

{

const char *username = env->GetStringUTFChars(jni_username, 0);

const char *passwd = env->GetStringUTFChars(jni_password, 0);

const char *isDriver = jni_isdriver == JNI_TRUE?“yes”:“no”;

__android_log_print(ANDROID_LOG_ERROR,TAG,“JNI-login: username = %s, passwd = %s, isDriver = %s”,

username, passwd, isDriver);

//封装一个数据协议

/*

给服务端的协议

http://ip:port/login [json_data]

{

username: “gailun”,

password: “123123”,

driver: “yes”

}

  • */

//(1)封装一个json字符串

//(2) 想web服务器 发送http请求 其中post数据 json字符串

//(3) 等待服务器的响应

/*

//成功

{

result: “ok”,

}

//失败

{

result: “error”,

reason: “why…”

}

  • */

//(4) 解析服务器返回的json字符串

return JNI_TRUE;

}

LoginActivity.java截取部分代码如下

boolean login_result = true;

//调用jni函数的方法,将用户的信息发送给服务器,服务器返回相关信息

login_result = BridgeUtils.getInstance().login(username, password, isDriver);

//将用户名的信息递交给服务器,服务器返回结果login_result,放在login_result中

if(login_result == true){

if(isDriver){

startActivity(new Intent(getApplicationContext(), DriverActivity.class));

}else{

startActivity(new Intent(getApplicationContext(), PassengerActivity.class));

}

//登录成功

Log.e(LOG_TAG, “登录成功!!! username=” + username + “|||password=” + password);

}else {

//登录失败

Log.e(LOG_TAG, “登录失败!!! username=” + username + “|||password=” + password);

}

完整代码如下:

package com.ldw.hello;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.CompoundButton;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class LoginActivity extends AppCompatActivity {

private TextView tv_username, tv_password;

private EditText et_name, et_pass;

private Button bt_login, bt_register;

private String username, password;

private CheckBox cb_driver;

private boolean isDriver = false;

private String LOG_TAG = “LoginActivity===”;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login);

initUI();

cb_driver.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if(isChecked){

isDriver = true;

Log.e(LOG_TAG, “是司机!!! username=” + username + “|||password=” + password);

}else {

isDriver = false;

Log.e(LOG_TAG, “是乘客!!! username=” + username + “|||password=” + password);

}

}

});

bt_login.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

boolean login_result = true;

username = et_name.getText().toString();

password = et_pass.getText().toString();

if(username == “”){

Log.e(LOG_TAG, “username 是空的”);

Toast.makeText(LoginActivity.this, “username 是空的” , Toast.LENGTH_SHORT).show();

return;

}else if(password == “”){

Log.e(LOG_TAG, “password 是空的”);

Toast.makeText(LoginActivity.this, “password 是空的” , Toast.LENGTH_SHORT).show();

return;

}

//调用jni函数的方法,将用户的信息发送给服务器,服务器返回相关信息

login_result = BridgeUtils.getInstance().login(username, password, isDriver);

//将用户名的信息递交给服务器,服务器返回结果login_result,放在login_result中

if(login_result == true){

if(isDriver){

startActivity(new Intent(getApplicationContext(), DriverActivity.class));

}else{

startActivity(new Intent(getApplicationContext(), PassengerActivity.class));

}

//登录成功

Log.e(LOG_TAG, “登录成功!!! username=” + username + “|||password=” + password);

}else {

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享

//登录失败

Log.e(LOG_TAG, “登录失败!!! username=” + username + “|||password=” + password);

}

}

});

bt_register.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Log.e(LOG_TAG, "用户注册!!! ");

Intent intent = new Intent();

intent.setClass(getApplicationContext(), RegisterActivity.class);

startActivity(intent);

}

});

}

public void initUI(){

tv_username = (TextView) findViewById(R.id.tv_username);

tv_password = (TextView) findViewById(R.id.tv_password);

bt_login = (Button) findViewById(R.id.bt_login);

最后

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

image

}

public void initUI(){

tv_username = (TextView) findViewById(R.id.tv_username);

tv_password = (TextView) findViewById(R.id.tv_password);

bt_login = (Button) findViewById(R.id.bt_login);

最后

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

[外链图片转存中…(img-4RvE1jUB-1640573408867)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

标签:username,字节,面试,244,result,login,password,android,LOG
来源: https://blog.csdn.net/m0_65684906/article/details/122167125

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有