git/svn/gradle配置签名文件/Android性能优化

一.git、svn

1)冲突怎么解决?

    答:在开发的时候,冲突一般分为两种,上传冲突 与 合并冲突,

合并冲突的解决:

    1.选中项目->右键->Git->Resolve Conflicts

    2.会出现一个弹窗,显示了冲突的文件,选择某个文件后,点击Merge

    3.然后,会出现三个代码框

    a、左边的Local Changes代表”当前“分支上的修改;

    b、右边的Changes from Server代表“合并进来”的分支上的修改;

    c、中间的Result代表经过处理后的最终内容;

4.左上角有一排按钮,分别介绍一下作用

    上下箭头:跳转到上/下一个不同;

    这三个从左往右依次代表:比较左边和中间的内容,比较中间和右边的内容,比较左边和右边内容;

  这三个从左往右依次代表:接受两边没有冲突的改变,接受左边没有冲突的改变,接受右边没有冲突的改变

    现在回头看内容区域,会看到四种颜色

        红色区域:代表当前分支和合并分支都编辑过的内容,属于冲突;

        蓝色区域:代表被单方面编辑过的内容,属于改变;

        灰色区域:代表被删除的内容,属于改变;

        绿色区域:代表新增的内容,属于改变;

    真正需要解决的冲突只有红色区域,其他高亮区域只是为了让我们再次确认改变的内容是否合理,如果对自己的代码有信心,那就不用管那些区域了,就按照c步骤的方法提交 你可以按照自己的需求接受改变的代码,通常可以直接接受两边没有冲突的改变:

        如果不记得自己的修改是什么,就可以关闭该工具,通过查找历史提交,比对历史代码来确认正确的代码;有的时候由于代码格式化的原因,你并没有改变代码的内容,但是格式化增加了一些空格,那么也会产生冲突,

2)分支怎么创建?

    1.首先进入本地git仓库目录下,打开git bash环境

    2.使用git branch命令可以查看到当前目录下的分支

    3.使用git branch 分支名称创建分支,创建完成后通过git branch可以看到本地已经多出了一个新建的分支

    4.使用git push origin 分支名  命令将本地的修改推送到远程服务器上

    5.push完成后你可以在远程服务上看到了新建的分支

3)你用分支干什么了?

    主要用于开发的时候,我们要在项目中添加一个功能,但是一般都不会在主项目上修改,所以,这个时候就要拉一个分支出来,在分支上面添加代码,保证主线程代码的完整可用性;还有就是 在分支上进行代码的开发测试,不影响团队的项目;还有就是,可用合并不同的软件仓库

4)合并分支

答:先切换到一个分支 然后git merge 另一个分支名


2.gradle配置签名文件

    答:在Android Studio中是使用Gradle进行项目打包的,所有我们就从这里入手,

配置其打包的方式,让其在debug的时候也运行release签名。

1.首先在module级别的build.gradle下,找到android节点。加入配置签名的代码

2.配置完你的证书信息之后,找到buildTypes节点,指定对于的打包签名方式

3.接下来打开Android Studio右侧Gradle菜单,找到assembleRelease,点击运行正式签名打包,

如果没有问题就可以run起来了。测试一下,发现在android studio直接运行也能调起微信支付等需要正式签名的功能了

3.性能优化:内存优化、布局、电量、流量、启动

一、布局优化:

Android 系统每隔 16ms 发出 VSYNC 信号触发对UI进行渲染,那么就要求每一帧都要在 16ms 内绘制完成(包括发送给 GPU 和 CPU 绘制到缓冲区的命令,这样就能够达到流畅的画面所需要的60fps 所以我们要在16s内做完所有的操作,而造成丢帧的原因有:

1.layout 太过复杂,层次过多

2.UI 上有层叠太多的绘制单元,过度绘制

3.CPU 或者 GPU 负载过重

4.动画执行的次数过多

5.频繁 GC,主要是内存抖动

6.UI 线程执行耗时操作

解决方法:1.layout 太过复杂,层次过多

(1).避免复杂的 View 层级

(2).避免 layout 顶层使用 RelativeLayout

(3).布局层次相同的情况下,使用 LinearLayout

(4).复杂布局建议采用 RelativeLayout 而不是多层次的 LinearLayout

(5). 标签复用

(6). 标签减少嵌套

(7).尽量避免 layout_weight

(8).视图按需加载或者使用 ViewStub

2.UI 上有层叠太多的绘制单元,过度绘制

(1).去除重复或者不必要的 background

(2).点击态中的 normal 尽量设置成 transparent

(3).去除 window 中的 background(这个可以通过处理 decorView 或者设置 Theme 的方式)

(4).若是自定义控件的话,通过 canvas.clipRect() 帮助系统识别那些可见的区域

3.内存抖动

(1).大对象可以使用对象池复用,比如 byte[]

(2).尽量在 16ms 内少创建对象,比如在 onDraw 中创建 Paint 对象,decode Bitmap 之类的

二、内存优化

1、防止内存泄漏,还有些代码时要注意防止内存泄漏,还可以使用Leakcancary内存检测工具。

2、合理使用如数组、链表、队列、栈、树、哈希表等数据结构。在这说一下,推荐两个安卓常用的SparseArray和ArrayMap,

  他们相比hashmap比较节省内存,在1000以下,性能上的差异可以忽略。

3、用int或者字符串常量代替枚举,枚举太占内存,大概是int的2倍。

内存优化之图片优化

1、把图片素材放在合适的目录下

2、bitmap优化,就是加载图片时可以调用BitmapFactory.Options来按照一定采样率来加载所需的图片大小。

3、用Glide、picisoo等三方框架加载图片。

三、电量优化

  耗电的原因:1、大数据的传输 2、解析大量的文本数据 3、不停的在网络间切换

  解决方案:1、先查看是否处于网络连接状态,如果没有连接成功,就不要执行响应的程序。

            2、使用高效的数据格式和解析方法,如json

    3、在进行大数据请求时,使用GZip压缩,它会大大减少文本文件的体积,从而使数据的传输效率变高

    在开发中,也要灵活的判断当前电量,如果电量低的话,就减少一些更新的操作,如果充电时或者电量充足时就加快App更新速度


你可能感兴趣的:(git/svn/gradle配置签名文件/Android性能优化)