项目小结与面试

    xiaoxiao2021-11-07  57

    1.图片上传时保证清晰度:

    https://github.com/android-cn/android-discuss/issues/285

      压缩图片算法:一、拍照的图一般是png格式,转换为jpg的。                              二、压缩jpg图片。原先4000k+的图片,可以压缩到80k左右,显示效果基本没有影响。原理类似把临近像素点集合成一个。   或者用不到什么高大上的算法,根据个人经验,就像@wangqiankun 所写的:                 1.缩小图片尺寸,720px的图片就够大了;                 2.图片格式保存成jpg,Bitmap.compress的时候,质量比参数设成80,甚至更小都可以;

    2.关于APP登录过程数据安全:

      标准做法是不存储密码及密码的加密形式;而是保存token,这个需要服务器支持OAuth 2.0协议。   https协议(不全部支持),MD5加密数据。

    3.一个Demo学会用Android兼容包新控件:

    http://sunjiajia.com/2015/07/02/android-new-widgets-demo/?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1

    4.关于自适应:

                  AutoLayout for Android

                  https://github.com/DTHeaven/AutoLayout-Android

    5.ListView中item的view种类很多,怎么处理?

      例子:Android ListView实现类似朋友圈的复杂布局,多种类型的布局组合在一起。动态为Feed类,被拆分为HeadEntry,BodyEntry,ImageEntry,BottomEntry等这几个Entry都继承BaseEntry,然后BaseAdapter里面List为List。由于Adapter可以使用多种布局,所以这里采用的方式是将单个信息 的布局拆分为多个ListView的item来达到优化的目的。         http://blog.csdn.net/nightyk/article/details/45057777

    6.进程与线程:

          http://hukai.me/android-notes-process-and-thread/

    7.app版本升级是如何做的?

      一。1.服务器提供更新接口 getNewVersion()返回JSON {"url":"http://.../**.apk","versionCode":"2","versionName":"2.0", "md5","1234...1234"}           2.客户端 获取 mVersionCode = 1 < 2 , 有新版本。           3.通过URL下载apk到本地。           4.获取apk完整性,md5比较。           5.进行升级安装。  二:仅通过商店更新  三:如果项目用到了友盟的SDK,直接用友盟还是挺方便的,不过友盟提供的更新UI很难看!但可以自定义

    8.手势

      按下(onDown): 刚刚手指接触到触摸屏的那一刹那,就是触的那一下。   抛掷(onFling): 手指在触摸屏上迅速移动,并松开的动作。   长按(onLongPress): 手指按在持续一段时间,并且没有松开。   滚动(onScroll): 手指在触摸屏上滑动。   按住(onShowPress): 手指按在触摸屏上,它的时间范围在按下起效,在长按之前。   抬起(onSingleTapUp):手指离开触摸屏的那一刹那。   任何手势动作都会先执行一次按下(onDown)动作。   长按(onLongPress)动作前一定会执行一次按住(onShowPress)动作。   按住(onShowPress)动作和按下(onDown)动作之后都会执行一次抬起(onSingleTapUp)动作。   长按(onLongPress)、滚动(onScroll)和抛掷(onFling)动作之后都不会执行抬起(onSingleTapUp)动作。

    9.自定义控件

      自定义控件:measure;draw;layout   1.继承我们的View或者是View的子类   2.初始化画笔Paint   3.重写onDraw画出界面   4.响应用户的触摸事件   自定义控件:   1.继承系统的控件(View),然后去修改   2.用系统提供的几个控件组合形成新的效果   

    10.scrollView里面有顶部图片,和gridView,如果出现顶部图片显示不全的情况,可能因为两部分争焦点,设置焦点不在gridView上就可以了。   

    11.时间的格式

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String t = format.format(new Date(time)); return t;   

    12.<!-- 拨打电话的权限 -->

    <uses-permission android:name="android.permission.CALL_PHONE" /> 呼叫指定的电话号码。 Intent intent=new Intent(); intent.setAction(Intent.ACTION_CALL);  intent.setData(Uri.parse("tel:10086"); startActivity(intent); 调用拨号面板 Intent intent=new Intent(); intent.setAction(Intent.ACTION_DIAL);  intent.setData(Uri.parse("tel:10086"); startActivity(intent);

    13.调手机通讯录

    <!-- 获取手机通讯录的权限 --> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setType("vnd.android.cursor.dir/phone"); // intent.setAction(Intent.ACTION_GET_CONTENT); // 设置Intent Type属性,主要是获取通讯录的内容 // intent.setType("vnd.android.cursor.item/phone"); startActivity(intent);
    转载请注明原文地址: https://ju.6miu.com/read-678070.html

    最新回复(0)