android的autolayout
⑴ 安卓第三方开源库
https://github.com/Snailclimb/javaGuide
https://github.com/crossoverJie/JCSprout
https://github.com/yangchong211/YCBlogs
https://github.com/GcsSloop/AndroidNote
Android开源库V - Layout:淘宝、天猫都在用的UI框架,赶紧用起来吧!
安卓开发者不得不收藏的工具
安卓那些你不得不收藏的开源库
GitHub上受欢迎的Android UI Library
Android开源项目以及开源框架,各种UI实现效果
Github: https://github.com/fanhua1994/XBaseAndroid
Gituhb: https://github.com/white-cat/ThinkAndroid
Github: https://github.com/gdpancheng/LoonAndroid
http://www.52im.net/
http://blog.csdn.net/dong_18383219470/article/details/71101859
http://blog.csdn.net/dong_18383219470/article/details/77932822
https://github.com/robbiehanson/XMPPFramework Ios
http://www.igniterealtime.org/projects/smack/ Android
http://www.igniterealtime.org/projects/openfire/index.jsp Server
http://www.igniterealtime.org/projects/spark/index.jsp Client
开源中国官方安卓APP
https://gitee.com/oschina/android-app
安卓聊天APP
Gitee: https://gitee.com/735859399/weichat
Github: https://github.com/JackJiang2011/MobileIMSDK
tinker 补丁管理管理平台
https://github.com//tinker-manager
https://www.jianshu.com/p/e61a4d10e122
https://github.com/alibaba/AndFix 阿里系
ttps://github.com/dodola/HotFix 腾讯系
https://github.com/jasonross/Nuwa
https://github.com/bunnyblue/DroidFix
https://github.com/Tencent/tinker 微信
https://github.com/dodola/AnoleFix 仿美团
https://github.com/dodola/RocooFix
https://www.aliyun.com/proct/hotfix
https://github.com/Meituan-Dianping/Robust 美团系
https://github.com/meili/Aceso 蘑菇街
https://github.com/eleme/Amigo/ 饿了么
https://github.com/square/okhttp
Github: https://github.com/jeasonlzy/okhttp-OkGo 5.9K
github: https://github.com/siwangqishiq/ImageEditor-Android
github: https://github.com/Blizzard-liu/AndroidUtils
github: https://github.com/xiuweikang/IM
github: https://github.com/LaiFeng-Android/SopCastComponent
github: https://github.com/zhoubowen-sky/LingDong
github: https://github.com/cxmscb/android-MaterialEditText
GitHub: https://github.com/dmytrodanylyk/circular-progress-button
GitHub: https://github.com/johnkil/Android-AppMsg
GitHub: https://github.com/MrZhousf/EasyDB
GitHub: https://github.com/LineChen/FlickerProgressBar
GitHub:[ https://github.com/chrisbanes/Android-PullToRefresh 暂停维护]
Github: https://github.com/huxq17/XRefreshView
Github: https://github.com/scwang90/SmartRefreshLayout
Github: https://github.com/MarkMjw/PullToRefresh
Github: https://github.com/Yalantis/Phoenix
Github: https://github.com/liaohuqiu/android-cube-app
Github: https://github.com/lizhangqu/Camera
Github: https://github.com/mayubao/KuaiChuan
Github: https://github.com/greenrobot/EventBus
Github: https://github.com/stfalcon-studio/ChatKit
Github: https://github.com/Rance935/ChatUI
Github: https://github.com/qstumn/BadgeView
Github: https://github.com/bingoogolapple/BGAQRCode-Android
Github: https://github.com/dm77/barcodescanner
Github: https://github.com/googlesamples/easypermissions
Github: https://github.com/yanzhenjie/AndPermission
Github: https://github.com/nanchen2251/CompressHelper
Github: https://github.com/jeanboydev/Android-BitherCompress
Github: https://github.com/Curzibn/Luban (最接近朋友圈图片压缩的算法)
Github: https://github.com/Sunzxyong/Tiny (an image compression framework.)
Github: https://github.com/FinalTeam/RxGalleryFinal
Github: https://github.com/ValuesFeng/AndroidPicturePicker
Github: https://github.com/LuckSiege/PictureSelector
Github: https://github.com/crazycodeboy/TakePhoto
Github: https://github.com/jeasonlzy/NineGridView
Github: https://github.com/donglua/PhotoPicker
Github: https://github.com/jeasonlzy/ImagePicker (已停止维护)
Github: https://github.com/LuckSiege/PictureSelector
Github: https://github.com/FinalTeam/RxGalleryFinal
Gituhb: https://github.com/DroidNinja/Android-FilePicker
Github: https://github.com/HomHomLin/AdvancedPagerSlidingTabStrip
Github: https://github.com/yangfuhai/ASimpleCache
Gituhb: https://github.com/ikew0ng/SwipeBackLayout
Github: https://github.com/liuguangqiang/SwipeBack
[图片上传失败...(image-487509-1510123239039)]
[图片上传失败...(image-f75761-1510123239039)]
Github: https://github.com/Tamicer/JsWebView
Github: https://github.com/forezp/SpringCloudLearning
Gituhb: https://github.com/daimajia/NumberProgressBar
Github: https://github.com/LinHuanTanLy/Pay_Master
Gituhb: https://github.com/chrisbanes/PhotoView
Github: https://github.com/orhanobut/dialogplus
Gituhb: https://github.com/saiwu-bigkoo/Android-AlertView
Github: https://github.com/afollestad/material-dialogs
Github: https://github.com/pedant/sweet-alert-dialog
Github: https://github.com/JoanZapata/android-pdfview
Gituhb: https://github.com/hongyangAndroid/Highlight
Gituhb: https://github.com/xiaoyaoyou1212/BluetoothChat
Github: https://github.com/LillteZheng/ViewPagerHelper
Github: https://github.com/crazyandcoder/citypicker
Github: https://github.com/QMUI/QMUI_Android
MVP+RxJava2+Retrofit2+Glide+Rxbus,主要实现日报、新闻、干货、影视等资讯,个人项目
Github: https://github.com/Horrarndoo/YiZhi
Github: https://github.com/yangchong211/LifeHelper
A memory leak detection library for Android and Java.(用于Android和Java的内存泄漏检测库)
Github: https://github.com/square/leakcanary
Github: https://github.com/zerochl/FFMPEG-AAC-264-Android-32-64
Github: https://github.com/aesion/NodeProgressView
https://github.com/CarGuo/GSYVideoPlayer
Github: https://github.com/gjiazhe/WaveSideBar
Github: https://github.com/fanhua1994/WheelPicker
Gituhb: https://github.com/XXApple/AndroidLibs
Github: https://github.com/AigeStudio/WheelPicker
Github: https://github.com/scwang90/SmartRefreshLayout (最强)
Github : https://github.com/RawnHwang/SmartRefreshLayout
Github: https://github.com/anzewei/NestRefreshLayout
Github: https://github.com/lipangit/JiaoZiVideoPlayer
Github: https://github.com/ACRA/acra
Github: https://github.com/CarGuo/CustomActionWebView
Github: https://github.com/fanhua1994/FastVideoPlayer
轻松将相机功能集成到您的Android应用程序
Github: https://github.com/google/cameraview
Github: https://github.com/hongyangAndroid/AndroidAutoLayout
Github: https://github.com/JessYanCoding/AndroidAutoSize (今日头条)
视频录制 视频压缩
Github: https://github.com/zerochl/FFMPEG-AAC-264-Android-32-64
Github: https://github.com/WritingMinds/ffmpeg-android-java
Github : https://github.com/chenhui28/VideoRecorderAndCompressor
Weixin: https://mp.weixin.qq.com/s/7ffZB0_RB90i5c60bEYRWg
Github: https://github.com/bm-x/PhotoView
Github: https://github.com/chrisbanes/PhotoView
Github: https://github.com/jpush/aurora-imui
Github: https://github.com/MZCretin/WifiTransfer-master
Github: https://github.com/DuanJiaNing/Musicoco
Github: https://github.com/GitLqr/LQRWeChat
Github: https://github.com/hmkcode/Android
Github: https://github.com/TheFinestArtist/FinestWebView-Android
github: https://github.com/delight-im/Android-AdvancedWebView
一款新闻客户端, MVP + RxJava + Retrofit + Dagger2
Github: https://github.com/Will-Ls/WeiYue
Github: https://github.com/yaowen369/DownloadHelper
Github: https://github.com/SOFTPOWER1991/OpenCVCheck
Github: https://github.com/luozhanming/Captcha
Github: https://github.com/JesseFarebro/Android-Mqtt
Github: https://github.com/wenmingvs/AndroidProcess
Github: https://github.com/jaredrummler/AndroidProcesses
Github: https://github.com/daimajia/AndroidSwipeLayout
Github: https://github.com/norbsoft/android-typeface-helper
Github: https://github.com/zcweng/ToggleButton
Github: https://github.com/wangzailfm/WanAndroidClient (Kotlin)
Github: https://github.com/salecoding/WanAndroid (Java)
Github: https://github.com/zrunker/IbookerEditorAndroid/
Github: https://github.com/jfeinstein10/SlidingMenu
Github: https://github.com/SpecialCyCi/AndroidResideMenu
Github: https://github.com/totond/TextPathView
Github: https://github.com/DroidPluginTeam/DroidPlugin [360手机助手]
Github:[
⑵ Android 屏幕适配
1: dp: android 尺寸的基本单位。 在不同的分辨率的手机里面,1dp对应着不同数量的px, 这样就实现了dp定义一个控件大小的时候,在不同分辨率手机里表现出相应大小的像素值。
2: 屏幕分辨率: 1080下160, 表示宽度有1080个像素点而高度有2160个像素点。常见的分辨率有320x480, 480x800, 720x1280, 1080x1920等。
3: 屏幕尺寸: 以寸为单位, Android设备对角线的长度
4: 像素密度: 每英寸的像素点
5: 屏幕尺寸, 分辨率,像素密度 三者之间的关系:
密度(dpi)= √(宽2 + 高2)/屏幕尺寸
6: px:像素,是屏幕上显示数据的最基本的点
7: dpi:屏幕像素密度,每英寸上的像素点数
8: sp:与dp类似,通常用于指定字体的大小,当用户修改手机显示的字体时,字体大小会随之改变。
1: dp适配方案: Android自带的原始的适配方案, 在不同的分辨率手机里面表现出相应大小的像素点。
缺点: Android的碎片化严重, 如果生产厂家没有根据屏幕尺寸、分辨率和像素密度的关系来规则定义, 或者出一些乱七八糟的屏幕大小,这样的适配方案就不在适合了。
2: 宽高限定符:枚举所有的屏幕宽高像素值,根据等比缩放去适配。如果没有找到对应的屏幕, 则取默认的。 目前这种方案已经被弃用。
缺点:
1: 占用资源大,会增加APK的体积。
2: 容错机制大需要精准命中资源文件才能适配,比如1920x1080的手机就一定要找到1920x1080的限定符,否则就只能用统一的默认的dimens文件了。而使用默认的尺寸的话,UI就很可能变形。
3:AndroidAutoLayout适配方案(停止维护)
4: SW限定符适配方案:(smallestWidth最小宽度适配)
Android 会去识别屏幕可用高度或者宽度的最小尺寸的dp值。然后根据识别到的结果去对应的资源文件里面去找寻相应的结果。
如何生成:ScreenMatch插件
此方案跟宽高限定的适配方案相比,有很好的容错机制, 如果没有找到对应的适配宽度, 那么会在vlues文件里面去找跟他最接近的宽度。
5:今日头条适配方案:
1>: px 转 dp 的公式 dp = px / density.不管我们设定的单位是什么, 最终我们都会将这些单位长度转化为px的。density就是他们的转化比, 所以,动态改变这个转化比也是可以达到我们适配屏幕的目的的。
2>: 通过修改density值,强行把所有不同尺寸分辨率的手机的宽度dp值改成一个统一的值(在清单文件中定义),这样就解决了所有的适配问题。
3>: Density = 当前设备屏幕总宽度(单位为像素)/ 设计图总宽度(单位为 dp) ;
4>:引入了AndroidAutoSize屏幕适配框架:
https://github.com/JessYanCoding/AndroidAutoSize
最后, 最重要的................
点赞 点赞 点赞, 不重要的事情也就说3遍......