学生面试被问到的问题总结

来源:互联网 发布:黑马程序员全套视频 编辑:程序博客网 时间:2024/05/17 01:25
1. 网络传输数据如何加密,比如账户密码,视频?
 
可以这么回答:
    进行安全保证的方式有很多种,如果进行简单的加密可以使用MD5或者DES,但是这些都是相对的,
    如果在开发安全性较高的应用时,可以考虑模仿HTTP协议那样,自定义一个协议,
    然后封装一下,在协议里使用时间戳+算法加密技术提高安全系数.


    Android网络传输中必用的两个加密算法:MD5 和 RSA
    答案参考:http://blog.csdn.net/yanzi1225627/article/details/26508035

      

 


--------------------》2. 支付功能如何实现?

   回答:
    目前主流的支付有三大,微信支付,支付宝支付,第三方银联支付。


   如果是我,我的回答是,我做android的目前只是用到第三方开放平台来实现接入这些支付功能,
   但是我不知道这些第三方支付功能具体怎么实现的,这个我真不知道,没研究。

   如果是接入第三方支付功能的话就比较简单了:参考文章http://blog.163.com/benben_long/blog/static/19945824320142279427395/

  支付宝集成:
    注意事项
    1.添加android.permission.INTERNET权限和android.permission.ACCESS_NETWORK_STATE权限
    2.代码中出现注释的地方重点看,没注释的地方可以不看
    3.想获取支付宝合作商户ID,及支付宝公钥请点击支付宝链接,生成密钥及PKCS8转码工具在文档中

  微信支付集成注意:参考:http://blog.csdn.net/jdsjlzx/article/details/47422279

        1.在你的项目测试微信的组件(分享、支付等)的时候,一定要用你自己的keystore签名出来测试,
          如果用debug.keystore肯定是不成功的,
   
        2.支付成功通知:在WXPayEntryActivity的OnResp中处理,不能以微信返回的通知界面为准
         (我遇到的情况,网络不稳定的时候,微信返回界面提示支付失败,但是收到微信通知其实已经支付成功了),
          必须要去自己的服务器查询支付状态,这里微信建议用轮循机制去查询
@Override
    public void onResp(BaseResp resp) {
        Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);

        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle(R.string.app_tip);
            builder.setMessage(getString(R.string.pay_result_callback_msg, resp.errStr +";code=" + String.valueOf(resp.errCode)));
            builder.show();
        }
    }


   


———————————》3. 在开发中你都遇到了哪些难题,如何解决的?

------------------》如何降低apk包的大小,

apk大小,跟你工程文件大小有直接关系,其中关系最为密切的还是你的图片多少,图片上能用.9处理的图片尽量用。
如果你一个apk需要适配多种手机,那么你最好只搞一套图片,另外图片的大小也应该做适当压缩,
保证图片显示质量的前提下,尽量优化图片的存储空间 。
 

 1 删除项目中没有到的文件,包括资源文件,java代码等等
 2 避免jar包的重复引用
 3 可以考虑压缩一下图片,前提是尽量保持图片别失真。

 

 

------------------》4.android 适配

  适配也是一个头疼的事,去年年底我们就开始正对720为主流做适配了,详细适配 百度
  还有有的面试官会问你,你们设计师出的图时根据ios的出还是android的出图
  有几种回答,
 (1)直接根据android的出图直接做一套720*1280
 (2)根据ios出图
    众所周知iOS设计的像素尺寸是640*960/1136,Android主流的hdpi模式下的像素尺寸是480*800。如图,
   他们的换算关系是,iOS像素尺寸的75%是Android的像素尺寸

    大概算法,大家可以看看:
  其实经过以上整个过程之后,我们已经得出了一个更简单的换算关系:iOS像素尺寸*75%=Android像素尺寸,
    Android像素尺寸*2/3=Android的dp尺寸。进而得出:iOS像素尺寸*75%*2/3=Android的dp尺寸。
    所以,iOS里一个宽600px的东西,在Android的hdpi模式下,正好300dp,正好是50%,很容易算是吧?

 简单说一下:
一、关于布局适配

1、不要使用绝对布局

2、尽量使用match_parent 而不是fill_parent 。

3、能够使用权重的地方尽量使用权重(android:layout_weight)

4、如果是纯色背景,尽量使用android的shape 自定义。

5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080*1800的屏幕

(魅族MX3采用此分辨率)则新建layout-1800x1080.xml的文件夹,然后在下面定义布局。Android系统会优先查找分

辨率相同的布局,如果不存在则换使用默认的layout下的布局。

 
 


 
-----------------》5.一个apk如何快速方便的打多个不同包名的产品(多渠道多产品推广)

   我们市场在推广apk的时候有时候需要根据渠道打不同包名的apk并且这些打出来的apk风格和内容展示以及文字展现略有不同。
   我们现在的做法是,把主工程项目当做libs形式关联到想要打包的工程,这样打不同包名的时候就方便,直接创建一个工程,
   把主工程关联,然后可以在新创建的工程里面略修改一些比如title风格,首页面进入风格
  (因为首页我们做了好几套可以根据类型来判断你走的是哪一个风格),就是一个新的apk出现了。

 

 

------------------------》 6.如何在webview中实现点击事件的监听处理?

参答案参考文章: http://blog.csdn.net/zzf112/article/details/19618101

0 0