美文网首页
参考资料

参考资料

作者: TwistedFateJie | 来源:发表于2018-06-15 12:01 被阅读0次

序列化与反序列化
http://blog.csdn.net/yayun0516/article/details/46397811

ImageLoader
https://www.cnblogs.com/zhen-android/p/6906613.html
https://www.cnblogs.com/linghu-java/p/5741358.html

透明activity

 <style name="Semitransparent" parent="@android:style/Theme.Translucent.NoTitleBar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:background">@color/semitransparent_color</item>
    </style>

popupwindow增加动画
https://www.cnblogs.com/jzyhywxz/p/7039503.html
https://www.cnblogs.com/jzyhywxz/p/7039503.html

https://my.oschina.net/javaTechLover/blog/338640

@Override
    public boolean onTouch(View v, MotionEvent event) {
        float posY = 0;
        float curPosY = 0;
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                posY = event.getY();
                Log.i("down","下滑"+posY);
                break;
            case MotionEvent.ACTION_MOVE:
                curPosY = event.getY();
                break;
            case MotionEvent.ACTION_UP:
                if (curPosY - posY > 0
                        && (Math.abs(curPosY - posY) > 100)) {
                    //向下滑動
                    Log.i("downdistance","下滑"+Math.abs(curPosY - posY));

                }
                break;
        }
        return true;
    }

设置adjustViewBounds // 是否保持宽高比

<ImageView
    android:id="@+id/iv_test"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    />
首先,需要给你的ImageView布局加上android:adjustViewBounds="true"

<ImageView android:id="@+id/test_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:layout_gravity="center"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_launcher" />

https://blog.csdn.net/chenqian_deyouxiang/article/details/46840929

开发规范
https://coding.net/t/heyemoji/p/huiteng-doc/topic/364650

点击变色
https://blog.csdn.net/u013278940/article/details/51152655

点9图的制作及其含义
https://blog.csdn.net/Fredlxy_007/article/details/72600767

APK包瘦身,性能优化

Lint工具
https://blog.csdn.net/u011240877/article/details/54141714

最佳实践 —— 详细谈谈如何减小APK体积

使用pngquant来压缩png资源缩小apk

具体实现

defaultConfig提供了resConfig这个flavor来指定打包出只打包某些资源,比如字串、图片等等
例如下面的代码就只保留了中文和英文的语言资源:

defaultConfig {
    resConfigs "zh","en"
}

so的优化

defaultConfig {
        
        ... ...

        ndk {
            //设置支持的SO库架构
            abiFilters 'arm64-v8a', 'armeabi' //, 'x86', , 'x86_64', 'arm64-v8a'
        }
    }

动态加载技术(插件化)

微信资源混淆打包工具
https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd

性能优化

内存泄漏

http://www.cnblogs.com/soaringEveryday/p/5035366.html

反编译

当前的反编译方式
https://www.jianshu.com/p/133702f2adff
https://www.jianshu.com/p/c90024f61653

项目收集

一款阅读器
https://www.jianshu.com/p/a670fa9a5f1d?utm_source=desktop&utm_medium=timeline
掘金精选
https://www.jianshu.com/p/5ad013eb5364

Gradle

stormzhang基础
https://www.zhihu.com/question/30432152
使用指南
https://blog.csdn.net/heqiangflytosky/article/details/50853268
gradle完整指南
https://www.jianshu.com/p/9df3c3b6067a

https://blog.csdn.net/yujihu989/article/details/54589684
Gradle常用命令

上面大家接触了一些命令如 ./gradlew -v ./gradlew clean ./gradlew build, 这里注意是./gradlew, ./代表当前目录,gradlew代表 gradle wrapper,意思是gradle的一层包装,大家可以理解为在这个项目本地就封装了gradle,即gradle wrapper, 在9GAG/gradle/wrapper/gralde-wrapper.properties文件中声明了它指向的目录和版本。只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。

理解了gradle wrapper的概念,下面一些常用命令也就容易理解了。

./gradlew -v 版本号
./gradlew clean 清除9GAG/app目录下的build文件夹
./gradlew build 检查依赖并编译打包
这里注意的是 ./gradlew build 命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令 assemble, 如

./gradlew assembleDebug 编译并打Debug包
./gradlew assembleRelease 编译并打Release的包
除此之外,assemble还可以和productFlavors结合使用,具体在下一篇多渠道打包进一步解释。

./gradlew installRelease Release模式打包并安装
./gradlew uninstallRelease 卸载Release模式包
下一篇来介绍用Gradle进行方便的多渠道打包,以及项目中完整的Gradle配置。有问题或建议欢迎大家直接博客留言

gradle完整指南笔记
顶层的build.gradle文件的配置最终会被应用到所有项目中。
buildscript:定义了 Android 编译工具的类路径。repositories中,jCenter是一个著名的 Maven 仓库。

allprojects:中定义的属性会被应用到所有 module 中,但是为了保证每个项目的独立性,我们一般不会在这里面操作太多共有的东西。

每个项目单独的 build.gradle:针对每个module 的配置,如果这里的定义的选项和顶层build.gradle定义的相同,后者会被覆盖。典型的 配置内容如下

相关文章

网友评论

      本文标题:参考资料

      本文链接:https://www.haomeiwen.com/subject/wliiqftx.html