一、踩坑
踩坑1:
问题Q:方法报错、标红、Android Studio提示必须添加权限检查。
解决S:不用管,一样能够正常运行!
踩坑2:
问题Q:权限报错、标红、提示必须是系统应用才可以使用。
解决S:不用管,一样能够正常运行!或者修改安全级别,Android Studio:
Preferences --> EditorEditor --> Inspections --> Android Lint --> uncheck item Using System app permission
踩坑3:
问题Q:图片src=”@android:drawable/…”报错,找不到里面放好的图片文件。
解决S:不要@android!!直接“@drawable/…”就可以找到啦!
踩坑4:
问题Q:自己新建并写了.xml,也对应创建了.java,就是无法启动。
解决S:启动的必须是活动activity!自己新建的界面不是activity,所以不行,也无法intent。
踩坑5:
问题Q:前台服务只能正常运行4min!
解决S:这涉及Android底层知识。其内涵在于多线程竞争资源。通过1.线程池管理;2.对资源分别加锁: synchronized 关键字,对临界资源进行管控即可。【此处复习了活锁、死锁等知识。】
学习1:
方法重写快捷键:Ctrl+O
学习2:
有事没事找框架!!!开源框架直接用!!!省时省力!!!
二、学海
1.Builder 模式
定义
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
适用场景
1.相同的方法,不同的执行顺序,产生不同的事件结果
2.多个部件或零件,都可以装配到同一个对象中,但是产生的运行结果又不相同
3.产品类非常复杂,或者产品中的调用顺序不同产生了不同的作用
4.需要初始化一个对象特别复杂的对象,这个对象有很多参数,且有默认值
举例
// OkHttp:Request.build
OkHttpClient client = new OkHttpClient();
Request.Builder builder = new Request.Builder()
.url(BASE_URL)
.method(“GET”, null);
Request request = builder.build();Call mCall = client.newCall(request);//…
2.顶部标题栏
CSDN:
Android项目中自定义顶部标题栏
https://blog.csdn.net/qq1271396448/article/details/78686052
Android隐藏自带标题栏,显示自定义标题栏
https://blog.csdn.net/dummyo/article/details/80479888
简书:
[Android开源框架]ActionBarEx使用说明 真好真香
https://www.jianshu.com/p/0893c8c1cc97
纯手工打造一个通用的标题栏TitleBar
https://www.jianshu.com/p/ccf6506335e7
思路都是定义自己的标题栏,然后隐藏系统原生的标题栏。
3.BLE开发(huā)
BLE:
https://www.jianshu.com/p/d991f0fdec63
4.Java基础
有冒号的for循环叫做foreach循环
public class ShuZu {
public static void main(String[] args) {
int i[]= {2,5,6,7,8,9};
for (int j = 0; j < i.length; j++) {
System.out.print(i[j]+" ,");
//这是一般数组,数组的下标是j,从0开始到5.将每次循环的值,也就是相应下标所对应的值打//印出来。
}
for (int j:i) {
//这里i 是数组,j不是下标了,j是来接受每一个数组i遍历出来的值的。
System.out.print(j+", “);
//System.out.print(i[j]+”, ");这种写法是错误的,因为j不是下标值,而是每个下标值所对应//组中的元素。
}
}
}
5. Snackbar
Snackbar简单使用及源码浅析
https://blog.csdn.net/liujian_30/article/details/74332061Snackbar
android Snackbar新控件解析
https://blog.csdn.net/lhy349/article/details/81096093
6. IntentFilter
简述 IntentFilter(意图过滤器)
https://www.cnblogs.com/ywtk/p/4158103.html
Broadcast的Intentfilter过滤策略
https://blog.csdn.net/mahongy/article/details/80282115
7. 后台服务:主题不可见的活动
Android 创建单独的服务运行在后台(无界面)
https://blog.csdn.net/a704225995/article/details/56481934
8. NotificationManager:通知栏消息推送
Android Notification 详解
https://www.cnblogs.com/travellife/p/Android-Notification-xiang-jie.html
Notification和NotificationManager浅析
https://www.jianshu.com/p/83116ae39207
9. Android循环运行
CSDN-搜索相关文章:android循环运行https://so.csdn.net/so/search/s.do?q=android%E5%BE%AA%E7%8E%AF%E8%BF%90%E8%A1%8C&t=blog&o=&s=&l=
android 后台长时间执行周期性定时任务 解决方案收集
https://blog.csdn.net/pi9nc/article/details/18654549
10.基站信号收集
Android 监听双卡信号强度
https://www.cnblogs.com/ldq2016/p/7028488.html
获取手机信号强度
https://blog.csdn.net/jingwen3699/article/details/8373183
PhoneStateListener
https://blog.csdn.net/firedancer0089/article/details/60121128
11.Fragment无法findViewById()解决方案
小改:已成功
Android 监听双卡信号强度如何在Fragment中使用findViewById
https://blog.csdn.net/qq_33210042/article/details/78710294
大改:未实践
Fragment学习之findFragmentById的使用
https://blog.csdn.net/lzm1340458776/article/details/25197553
12.百度地图SDK
全量定位:包含离线定位、室内高精度定位能力,同时提供更人性化的位置描述服务;
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio
百度地图SDK配置与使用 //successfully.
https://blog.csdn.net/wuqingsen1/article/details/84782836
返回值说明:
http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/addition-func/error-code
返回值 返回值说明
61 GPS定位结果,GPS定位成功
62 无法获取有效定位依据,定位失败,请检查运营商网络或者WiFi网络是否正常开启,尝试重新请求定位
63 网络异常,没有成功向服务器发起请求,请确认当前测试手机网络是否通畅,尝试重新请求定位
66 离线定位结果。通过requestOfflineLocaiton调用时对应的返回结果
67 离线定位失败
161 网络定位结果,网络定位成功
162 请求串密文解析失败,一般是由于客户端SO文件加载失败造成,请严格参照开发指南或demo开发,放入对应SO文件
167 服务端定位失败,请您检查是否禁用获取位置信息权限,尝试重新请求定位
505 AK不存在或者非法,请按照说明文档重新申请AK
获取当前位置信息,百度官方文档
http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/getloc
13.Android制作表格
如何制作表格(一)——TableLayout
https://blog.csdn.net/chen19960724/article/details/52650222
smart Table相关网页:
https://github.com/huangyanbin/smartTable
https://www.jianshu.com/p/6dc225602ca6
Android表格
https://blog.csdn.net/m0_37791326/article/details/61426002
14.Android获取SHA1
Android生成SHA1(证书指纹) //在AndroidStudio中打开Terminal进行即可,不需要cmd
https://blog.csdn.net/qq_30297763/article/details/81533098
15.Android单选框
Android开发—弹出列表、单选、多选框
https://blog.csdn.net/u012246458/article/details/82835085
16.EditText用法
EditText 基本用法
https://www.cnblogs.com/yishaochu/p/5785234.html
17.Android时间选择器
Android DatePickerDialog使用指南 -简单版
https://www.jianshu.com/p/d3744c2b480a
android:简单包装实现伪自定义DatePickerDialog和TimePickerDialog
https://www.jianshu.com/p/6b35894b0fed
Android DatePickerDialog和TimePickerDialog显示样式
https://www.cnblogs.com/huanyou/p/5087044.html
18. RecyclerView 展示同日期下的数据信息
https://blog.csdn.net/wu996489865/article/details/52712301
19.Android日历控件
Android精美日历控件CalendarView自定义使用完全解析
https://blog.csdn.net/huanghaibin_dev/article/details/79040147
https://github.com/huanghaibin-dev/CalendarView
Android日历签到,超级简单的实现方式 --简单
https://www.jianshu.com/p/13c65abf533f
Android可签到的日历控件:SignCalendar –不错
https://blog.csdn.net/longxuanzhigu/article/details/78625132#commentBox
20.Java容器等知识
容器即是集合set、队列queue、数组ArrayList、LinkedList等等。区别自查。
Hash表并没有什么神秘的,哈希就是映射,就是一对一的映射。散列。
21.Fastble开源框架???
Android开发之Ble(Bluetooth low energy)初识
https://blog.csdn.net/qq_35189116/article/details/81033340
https://github.com/Jasonchenlijian/FastBle
22.序列化&&反序列化
序列化和反序列化理解
https://www.jianshu.com/p/6219d8024d2c
23.哈希算法、MD5
哈希hash就是散列,哈希算法本质就是将输入进行压缩,它接收随意大小的数据,输出固定长度的哈希值。。信息摘要是安全的单向哈希函数。
不同的对象可能获得相似的哈希值。
哈希算法可以检验信息是否相同,这样的优势可以节省重复文件传送的时间。举一个生活中很平常的例子,我们在生活工作中会使用一些软件给别人传送文件数据,如果有人传送了一份文件给一个人,然后又有一个人传送了相同的文件给了另外一个人,那么这个社交软件在第二次传送文件的时候会对比两次传送的哈希值,发现是相同的,该软件就不会再次上传文件给服务器了。
除此之外,哈希算法还可以检验信息的拥有者是否真实。比如,我们在一个网站注册一个账号,如果网站把密码保存起来,那这个网站不论有多安全,也会有被盗取的风险。但是如果用保存密码的哈希值代替保存密码,就没有这个风险了,因为哈希值加密过程是不不可逆的。
从理论上说,哈希值是可以被获得的,但是对应的用户密码很难获得。
假设一个网站被攻破,黑客获得了哈希值,但仅仅只有哈希值还不能登录网站,他还必须算出相应的账号密码。
因为用户会在各个站点使用同样的口令,防止别的地方泄露的密码被暴力破解后影响到你的站点。给每个用户的口令加上一段随机生成的字符串凑在一起通过哈希算法来存储密码。保存好密码和这段随机生成的字符串,这段字符俗称『盐』。就是在字符串中加入杂质,使得输出的摘要不同。
MD5相关解释
https://blog.csdn.net/sinat_27933301/article/details/79538169
https://www.cnblogs.com/hjgods/p/3998570.html
https://blog.csdn.net/blade2001/article/details/6341078
https://www.cnblogs.com/peaceliu/p/7825706.html
https://www.cnblogs.com/mengfanrong/p/3896447.html
https://www.cnblogs.com/xzwblog/p/6958056.html
24.Shiro安全框架
https://www.cnblogs.com/learnhow/p/5694876.html
https://blog.csdn.net/chaiyu2002/article/details/81416385
https://blog.csdn.net/Angel_G/article/details/53993795
https://blog.csdn.net/Angel_G/article/details/53993813
25.RecyclerView
https://blog.csdn.net/iamdingruihaha/article/details/54772834
https://blog.csdn.net/liaoinstan/article/details/52671101
https://www.jianshu.com/p/689529c99510
https://github.com/CymChad/BaseRecyclerViewAdapterHelper/blob/master/README-cn.md
https://www.jianshu.com/p/b343fcff51b0
26.底部导航栏
https://www.jianshu.com/p/75f82b7d3f34
https://www.cnblogs.com/hehe520/p/6329954.html
27.PickerView
https://github.com/Bigkoo/Android-PickerView
https://blog.csdn.net/zhaihaohao1/article/details/81327597#commentBox
28.动态权限申请框架及安卓百度地图显示
https://www.jianshu.com/p/dea56f6d7af3
29.百度地图添加marker
https://blog.csdn.net/qq_38450133/article/details/81218011
拖拽地图定位:https://blog.csdn.net/qq_28779083/article/details/86636546
设置一个图层在屏幕中心(其实仅仅是给用户的一个参照),然后移动地图取中心点的坐标即可。
百度地图api地图如何移动到指定的经纬度处:
https://www.cnblogs.com/tony-yang-flutter/p/4434392.html
安卓百度地图应用简书:
https://www.jianshu.com/p/fdd1ba783495
本文出自zhh_happig的简书博客
声明:仅供个人学习,如有侵权请联系删除。