Android面试收集录 网络与加密

 

1.创建Socket对象需要至少指定哪些信息?

  • IP(或域名)和端口号
  • Socket socket=new Socket("www.baidu.com",80);

 

2.如何使用Socket连接服务器?

  • 建立一个Socket对象:Socket socket=new Socket("192.168.17.100",8080);
  • OutputStream os=socket.getOutputStream();
  • OutputStreamWriter osw=new OutputStreamWriter(os);
  • BufferedWriter bw=new BufferedWriter(osw);
  • 向服务器写数据:bw.write("hello world"); bw.flush();
  • 向服务器读数据:创建输入流同上,然后 while((s=br.readLine())!=null) ...

 

3.使用Socket成功连接服务器后,如何获取服务器的IP和域名?

  • Socket socket=new Socket("www.baidu.com",80);
  • socket.getInetAddress().getHostAddress();
  • socket.getInetAddress().getHostName();

 

4.Java提供的7个基本缓冲区是什么?

  • ByteBuffer
  • ShortBuffer
  • IntBuffer
  • CharBuffer
  • FloatBuffer
  • DoubleBuffer
  • LongBuffer

 

5.WebView如何使用,如何向前和向后浏览历史页面?

  • WebView webView=(WebView)findViewById(R.id.webView);
  • webView.loadUrl("http://www.baidu.com");
  • 向前:webView.goForword();
  • 向后:webView.goBack();

 

6.WebView如何显示一端String变量中的HTML代码?

  • webView.loadDataWithBaseURL("图书名",html字符串,"text/html","utf-8",null);
  • webView.getSettings().setJavaScriptEnabled(true);  //打开JavaScript功能
  • webView.setWebChromClient(new WebChromeClient()); //设置处理JavaScript的引擎

 

7.请描述Android中Java与JavaScript如何交互?

  • 首先在Java中配置WebView的JavaScript,设置支持JavaScript,设置WebChromeClient等
  • 在JavaScript中调用Java方法需要使用WebView.addJavascriptInterface方法
  • 可以再JavaScript代码中调用window.接口名字.方法名字(参数名)来访问java方法

 

8.请说出Android支持哪些访问HTTP资源的方式?

  • DefaultHttpClient通过HttpGet和HttpPost分别封装了GET和POST请求。
  • HttpURLConnection通过URL的构造方法,通过URL.openConnection方法获取HttpURLConnection

 

9.上传文件到服务器,需要注意哪几点呢?

  • 如果使用HttpURLConnection对象向服务端发送数据,需要使用setDoOutput方法打开输入开关
  • 需要设置请求方法:httpURLConnection.setRequestMethod("POST");
  • 文件开头需要分界符:httpURLConnection.setRequestProperty("Content-Type","multipart/form-data;boundary="+boundary);
  • 文件结尾需要分界符:dos.writeBytes(twoHyphens+boundary+"--"+end);

 

10.请简要解释一下什么叫HTTPS?

  • Secure Hypertext Transfer Protocal,安全超文本传输协议
  • HTTP的安全版本
  • 在HTTP下加入SSL层

 

11.Android SDK支持访问HTTPS资源吗?

  • 支持的
  • 需要信任所有的host
  • 然后像访问HTTP资源一样使用httpClient和httpPost即可

 

12.Android SDK 支持几种加密技术?

  • 4种
  • MD5+SHA+HMAC 不可逆
  • AES 可逆
posted @ 2018-03-12 16:11  Jason_Jan  阅读(296)  评论(0编辑  收藏  举报