一个Android开发工程师的经验总结

来源:互联网 发布:南通农村商业银行软件 编辑:程序博客网 时间:2024/06/05 09:27

做码农也有三年时间了,然后自己总结下一直以来遇到的问题点,记录下自己的所查找到的方法。方便自己也便于他人,同时也非常感谢众多互联网人的支持。

1.引用arr 
http://jingyan.baidu.com/article/2a13832890d08f074a134ff0.html 
2.银联支付 
https://open.unionpay.com/ajweb/help/query 
3.因为B站不支持https换.so文件 让你支持https 
http://blog.csdn.net/linchaolong/article/details/52805666 
4.本地视频可以看到播放时长 
http://blog.csdn.net/zlzljake/article/details/49176373 
5.各种加载框UI效果 
https://github.com/ybq/Android-SpinKit 
6.一个工具 如果你想打开别人的APP 看看别人到底用了什么控件或者什么的 
https://www.diycode.cc/topics/533 
7.小程序 
https://minapp.com/article/ 
官网: 
https://www.qcloud.com/solution/la?utm_source=tips2&utm_medium=xiaochengxu&utm_campaign=tips&sessionUserType=BFT.PARAMS.206488.TASKID&ADUIN=574259582&ADSESSION=1483926579&ADTAG=CLIENT.QQ.5497_.0&ADPUBNO=26621
8.对于引用B站视频混淆处理 
-keep class com.supercwn.player.* {; } 
-keep class tv.danmaku.ijk.media.player.* {; } 
-keep class tv.danmaku.ijk.media.player.IjkMediaPlayer{ 
*; 

-keep class tv.danmaku.ijk.media.player.ffmpeg.FFmpegApi{ 
*; 

-keep class com.superplayer.library.* {;} 
9.GLSurfaceView SurfaceView SurfaceTexture SurfaceTextureView原理 
http://blog.csdn.net/jinzhuojun/article/details/44062175 
10.表情处理 
http://blog.csdn.net/u013653230/article/details/53314168 
http://blog.csdn.net/wan903531306/article/details/52611181 
11.集合了很多知识点适合复习 适合面试 
https://github.com/GeniusVJR/LearningNotes 
https://www.diycode.cc/wiki/androidinterview 
12.activity中屏幕各个方向怎么设置或者都表示什么意思 
http://www.2cto.com/kf/201204/128106.html 
13.热修复的资料 
https://github.com/Tencent/tinker/wiki 
https://github.com/Tencent/tinker/issues

http://www.tinkerpatch.com 
http://www.tinkerpatch.com/Docs/intro 
https://github.com/TinkerPatch/tinkerpatch-sdk/issues 
14.集合了很多项目信息,也许会找到一款你想要的功能 
http://www.jcodecraeer.com/a/opensource/2016/0309/4042.html 
http://blog.csdn.net/tiantian1980/article/details/18838129 
http://www.trinea.cn/category/perf/ 
15.智能硬件学习 
http://blog.csdn.net/anddlecn/article/details/51965154 
16.选择哪一款即时通讯 
https://www.zhihu.com/question/27027138 
http://zhidao.baidu.com/link?url=55WugP6xikC2tXDodMHWP4QA7tnRzoXSc1qfj8YDPu74QWwiL1ADg_jgPyn69xOmEemoJn_hEhtxeGPTCNii2_ 
17.视频用到的几种框架 
http://isunxu.xyz/android/between-rtmp-and-hls-third-party-choice/ 
18.下载 
http://netroid.cn/ 
19.7.0的特性 
http://wetest.qq.com/lab/view/288.html?from=adsout_qqtips_past2_288&sessionUserType=BFT.PARAMS.211332.TASKID&ADUIN=867107606&ADSESSION=1487901934&ADTAG=CLIENT.QQ.5503_.0&ADPUBNO=26642
20.牛人的网站 
廖雪峰 Java Python http://www.liaoxuefeng.com/ 
渠道打包 RxJava MQTT等 https://github.com/mcxiaoke

21.底部popWindow显示不全的问题 
http://ask.csdn.net/questions/230312#answer_292102

我遇到的情况是,摩托罗拉手机。可以想到的解决方案。 
1,更改主题,继承FragmentActivity,主题改为Theme.Holo.Light.NoActionBar 
2,不写目标版本或者目标版本在20以下。 
3,或者可以考虑对具体型号做处理;就是获取到手机型号,然后对其特殊处理,获取虚拟按键的高度。

这方法不合适 
http://blog.csdn.net/zouchengxufei/article/details/48985093 
22.aidl进程之间 
http://www.cnblogs.com/BeyondAnyTime/p/3204119.html 
23.string的转义字符 http://blog.csdn.net/z1074971432/article/details/12753539 
24.主线程和子线程交互方式 
http://blog.csdn.net/u012291541/article/details/38815943 
25.Android的Fragment中onActivityResult不被调用的解决方案 
http://blog.csdn.net/shuaihj/article/details/46663109 
fragment也有onActivityResult方法如果是从fragment中startActivityForResult中调用那么在fragment中onActivityResult接收就好 
26.setImageResource和setImageBitmap区别 
http://blog.csdn.net/zhaoyazhi2129/article/details/9406833 
27.material design MD5 
http://blog.csdn.net/huyuchaoheaven/article/details/47084813 
http://blog.csdn.net/xushuaic/article/details/40627389 
https://github.com/lightSky/Awesome-MaterialDesign 
28.RecyclerView实现条目Item拖拽排序与滑动删除 刷新 
http://blog.csdn.net/yanzhenjie1003/article/details/51935982 
29.倒计时 http://blog.csdn.net/freesonhp/article/details/25904047 
30.二维码扫描 Zbar Zxing 
31.获取虚拟按键、状态栏等高度 
http://blog.csdn.net/xidianluke/article/details/49331935 
32.别人写的网络框架 
https://github.com/yanzhenjie/NoHttp 
33.支付 易付宝平台http://open.yeepay.com/yop-mbr/ 
34.直播平台 http://neast.cn/forum.php?mod=viewthread&tid=61625&fromuid=5 
35.adb 命令http://www.cnblogs.com/zgqys1980/p/5234042.html 
36.命名方法 http://www.cnblogs.com/ycxyyzw/p/4103284.html 
37.RecyclerView 相关的 
https://github.com/wasabeef/recyclerview-animators 
ry相关的动画 
https://github.com/CymChad/CymChad.github.io 
ry整体介绍的文章 非常全面 
https://github.com/danylovolokh/VideoPlayerManager 
对于视频列表播放 有点像网易的那种

http://blog.csdn.net/developer_jiangqq/article/details/49992269

https://github.com/shichaohui/AnimRefreshRecyclerView

38.部分手机打印不出日志 
魅族手机 
http://blog.csdn.net/u013175701/article/details/51428870 
https://zhidao.baidu.com/question/919563332219463579.html 
华为手机 
https://segmentfault.com/a/1190000006921246 
39.获取Android签名证书的sha1值 比如申请百度key需要 
http://blog.csdn.net/harvic880925/article/details/17618743 
http://blog.csdn.net/stevenhu_223/article/details/38333611 
40.Android 6.0 使用HttpClient引起的问题如何解决 
http://blog.csdn.net/liuhongwei123888/article/details/50100697 
41.px sp dp 
http://www.cnblogs.com/bluestorm/p/3640786.html 
http://blog.csdn.net/lincyang/article/details/42679589 
42.安装启动时候的问题 
http://blog.csdn.net/love100628/article/details/43238135 
43.manifest属性 
http://blog.csdn.net/voiceofnet/article/details/7770311 
http://blog.csdn.net/ygc87/article/details/7335647 
44.优秀程序员必须知道的32个算法 
http://mobile.51cto.com/hot-402474.htm 
45.图片压缩的方法 
http://blog.csdn.net/cherry609195946/article/details/9264409 
46.imageview获得Bitmap http://blog.csdn.net/jdsjlzx/article/details/7578319 
47.短信中不同的字体颜色不一样(比如电话号码)而且还可以单击事件 
http://blog.csdn.net/cike110120/article/details/9106027 
http://www.jcodecraeer.com/a/opensource/2015/0403/2688.html 
48.关于fragment中的几个问题 
通过onAttach方法得到activity 
通过setUserVisibleHint方法来判断fragment切换的界面是否显示了 
49.图片缩放 
http://www.cnblogs.com/csonezp/p/5083286.html 
50.学习ReactNative 
http://blog.csdn.net/u012515223/article/category/5990897 
http://blog.csdn.net/ddwhan0123 
51.recyclerView嵌套滑动的view的问题http://www.cnblogs.com/tianzhijiexian/p/4469516.html 
52.recyview滑动的距离 滑动到指定位置 
http://www.zhihu.com/question/31270461 
http://www.ithao123.cn/content-8236589.html 
53.字体颜色改变 自定义字体 
http://blog.csdn.net/centralperk/article/details/8669421 
54.tools的属性 
http://www.bubuko.com/infodetail-916616.html 
55.拨打电话的两种方式 
第一种方式: 
Intent intent = new Intent(Intent.ACTION_DIAL); 
Uri data = Uri.parse(“tel:” + “135xxxxxxxx”); 
intent.setData(data); 
startActivity(intent); 
这种方式的特点就是,去到了拨号界面,但是实际的拨号是由用户点击实现的。 
第二种方式: 
Intent intent = new Intent(Intent.ACTION_CALL); 
Uri data = Uri.parse(“tel:” + “135xxxxxxxx”); 
intent.setData(data); 
startActivity(intent); 
这种方式的特点就是,直接拨打了你所输入的号码,所以这种方式对于用户没有直接的提示效果,Android推荐使用第一种方式,如果是第二种的话,建议在之前加一个提示,是否拨打号码,然后确定后再拨打。 
权限: 
56.shape的使用详解以及常用效果(渐变色、分割线、边框、半透明阴影效果等) 
http://blog.csdn.net/rflyee/article/details/20785495?utm_source=tuicool&utm_medium=referral 
57.64K问题 
Error:The number of method references in a .dex file cannot exceed 64K. 
Learn how to resolve 
this issue at https://developer.android.com/tools/building/multidex.html

出现这种问题我们应该注意什么(这些都是我自己想到的): 
1.少用一些第三方库,或者精简用,比如有些库有很多我们不需要的功能,所以要用轻量级的。 
2,尽量复用一些方法或者页面 
3,一个apk插值到另外一个apk中那种情况 
58. Android 关闭多个视图Intent.FLAG_ACTIVITY_CLEAR_TOP用法 
http://blog.csdn.net/lvxiangan/article/details/42120951 
59.如果new 出来的imageview 图片比较大会出现上下 
空白在imageview中加一个属性android:adjustViewB 
http://www.th7.cn/Program/Android/201502/388863.shtml 
60.性能 
http://blog.csdn.net/nthack5730/article/details/51002218 
写Java程序遵守的原则 
http://blog.csdn.net/jie1991liu/article/details/8168437 
61.应用评分 
找到对应市场: 
Uri uri = Uri.parse(“market://details?id=” + context.getPackageName()); 
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); 
try { 
startActivity(goToMarket); 
} catch (ActivityNotFoundException e) { 
Toast.makeText(context, “Couldn’t launch the market !”, Toast.LENGTH_SHORT).show(); 
}

参考: 
http://www.cnblogs.com/exmyth/p/4579455.html 
市场定位: 
http://blog.csdn.net/lovexieyuan520/article/details/44569739 
62.自定义布局 
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) view.getLayoutParams(); 
params.width = w; 
params.height = h; 
view.setLayoutParams(params);

上面写不会影响原来的布局设置除了对应的参数(比如这时候的宽高)

下面这么写会把原来xml设置的比如边距等会给抹掉 
public void setLayoudtView(View view, int w, int h) { 
AppBarLayout.LayoutParams params = new AppBarLayout.LayoutParams(w,h); 
params.width = w; 
params.height = h; 
view.setLayoutParams(params); 

63.获取对应布局的高度 
http://blog.csdn.net/heng615975867/article/details/9350423 
64.拍照的时候图片位置更改 
http://www.cnblogs.com/zmc/p/4022902.html,这个只是解决了旋转问题,但是解决不了上传后旋转的问题 
http://104zz.iteye.com/blog/1688161 
http://blog.csdn.net/yilip/article/details/8501287 
判断图片宽高,有些相机如果横拍的时候,图片宽会大于高度这样就会旋转90 
65.JAVA字符串格式化-String.format()的使用 
http://blog.csdn.net/lonely_fireworks/article/details/7962171 
66.源码在线网址 
http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android 
67. androidcontentDescription的用途 
http://blog.csdn.net/yuxiaohui78/article/details/41206179 
68.android配置cmd抓日志 
第一步需要配置: 
http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html 
第二步查看日志: 
http://zhidao.baidu.com/link?url=S-38XA2p-FRQmMWhXqJvqd4OO84b0LdxSPUF-WcfbSdRz6C33FAbT9LS9y16iGigw_XodNZsFG_81YTMLUi4Kq 
69.图片处理 
70.Android 4.4前后版本读取图库图片方式的变化 
71.http://blog.163.com/shexinyang@126/blog/static/13673931220149135409328/ 
72. 
73.压缩图片(我们项目中选择的就是先其中的第二种方法,先是图片比例压缩再质量压缩) 
74.http://104zz.iteye.com/blog/1694762 
75. 
76.http://www.jb51.net/article/41117.htm 
77.压缩图片总结(我觉得写的特别好) 
78.http://blog.csdn.net/cherry609195946/article/details/9264409 
http://blog.csdn.net/fengyuzhengfan/article/details/41759835

79.as用到的插件 
http://blog.csdn.net/kaku2013/article/details/51465019 
80.父Activity控制子Activity 
http://blog.csdn.net/u013785400/article/details/19962873 
81.状态栏背景颜色的改变 api19以上 和以下5.x情况 
http://blog.csdn.net/jdsjlzx/article/details/41643587 
http://www.cnblogs.com/leon-hm/p/5131323.html 
82.UI页面标注 
http://www.biaonimeia.com/ 
83.新建项目的时候提交应该注意的点 
新建一个项目先要设置好过滤东西 在as中add到svn中后 在提交 这样别人的人就不需要设置改项目的过滤 
84.网络状态码说明 
HTTP状态码(HTTP Status Code) 
一些常见的状态码为:200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 
所有状态解释:点击查看 
1xx(临时响应) 
表示临时响应并需要请求者继续执行操作的状态代码。

代码 说明 
100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx (成功) 
表示成功处理了请求的状态代码。 
代码 说明 
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 
201 (已创建) 请求成功并且服务器创建了新的资源。 
202 (已接受) 服务器已接受请求,但尚未处理。 
203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 
204 (无内容) 服务器成功处理了请求,但没有返回任何内容。 
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。 
206 (部分内容) 服务器成功处理了部分 GET 请求。

3xx (重定向) 
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

代码 说明 
300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 
305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx(请求错误) 
这些状态代码表示请求可能出错,妨碍了服务器的处理。

代码 说明 
400 (错误请求) 服务器不理解请求的语法。 
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 
403 (禁止) 服务器拒绝请求。 
404 (未找到) 服务器找不到请求的网页。 
405 (方法禁用) 禁用请求中指定的方法。 
406 (不接受) 无法使用请求的内容特性响应请求的网页。 
407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 
408 (请求超时) 服务器等候请求时发生超时。 
409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 
410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。 
411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。 
412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。 
413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 
414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。 
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。 
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。 
417 (未满足期望值) 服务器未满足”期望”请求标头字段的要求。

5xx(服务器错误) 
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

代码 说明 
500 (服务器内部错误) 服务器遇到错误,无法完成请求。 
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。 
85.集合了很多框架 
http://www.jianshu.com/p/1f21e1d375aa

1 0