终于下决心开始写了。写的目的是给自己安卓学习之路留下点痕迹。
目前在进行的学习内容是抄书《疯狂安卓讲义》中的例子。去年该项工作的进行是断断续续,今年吸取教训。
为了继续刷书,自己需要降低目前的sdk版本。就以安卓4.0为目标。
然后自己的avd还是和自己目前的手机对应,用6.0,但是6.0有bug,应用7.0吧。
最高的进行尝试,如果api19,android4.4,编译出来的在自己手机上能运行,那就这样。
如果不能,将最高的升级到android6.0;
avd的版本中没有4.0,只有4.4。就用4.4吧。
自己目前的targetSdkVersion为19。
然后自己目前的学习过程是先看书,明确自己要学什么,概念和方法。
然后抄代码,在抄的过程中理解概念和方法。
抄完代码后,然后归纳概念和方法对应的具体代码。
在归纳的基础上,然后总结什么样的功能可以通过什么样的代码实现。
而在自己目前的学习中,整个过程没有连贯起来。没办法,之前的精力在每天保证学习时间上,现在才有精力来考虑这些了。
- 安卓应用程序三个重要的组件:activity,service,BroadcastReceiver
- intent用于启动组件并在组件之间进行通信。
- activity的启动方法有两种:startActivity()和startActivityForResult()
- service的启动方法有两种。还看不懂。
- BroadcastReceiver的启动方法有六种。不太懂。
- Intent对象的主要属性有七种。分别是Component,Action,Category,Data,Type,Extra,Flag。
- Component属性明确要启动的对象。
- 设置该属性。两类,直接赋值,调用方法。
该属性接受ComponentName对象。ComponentName对象有三种构造方法。
intent有三种设置Component的方法。
setClass(Context packageContext,Class cls)
setClassName(Context packageContext,String className)
setClassName(String packageName,String className)
安卓应用的context对象与包名一一对应。
Intent根据是否指定Component属性分为显式与隐式。
- 实际使用中,这一步融合在Intent的构造器中。
- Intent(Context context, Class XX.class);
- Action和Category属性用于指定Intent要实现的动作,配合Manifest中的intent-filter来实现。
- 在Activity甲中定义Intent的Action属性。
- 在Activity乙的Manifest中配置intent-filter标签。两个值相同,就可以通过甲来启动乙了。
示例代码。
为了上传示例代码,参考世锋日上的文章设置了gitHub分享,记录自己的过程如下:
我系统是macOS Sierra。
1. 在AndroidStudio中新建一个项目。建好后的界面如图js20170108075159所示。
2. 设置: Preferences(或者用快捷键:command+,) -> Version Control -> Git , 设置git目录, 点击Test测试, 如果成功会有Success提示,如图js20170108075710所示。
3. 设置: Preferences -> VersionControl -> GitHub ,设置自己的github账号, 密码, 点击Test测试, 如果成功会有Success提示,如图js20170108075911所示。
单击右下角OK按钮提示设置Master Password。保留空白,单击OK按钮。
4. 分享项目: VCS -> Import into Version Control -> Share Project on GitHub, 点击之后开始设置 repository name。如图js20170108080322所示。
设置完后单击OK按钮,如图js20170108080558所示。
Description第一次用中文出错。如图js20170108080817所示。
换英文。出现成功提示。如图js20170108080940所示。
原来开始的第一步应该是仿写。
然后觉得简书太好用了。
检查时发现没有上传需要的文件。
在Project视图(如图js201701085739)下,右击项目文件夹进行设置(如图js20170108085800)。
如果看不到需要上传的文件,在Project视图下,右击项目文件夹进行添加(如图js20170108090033)。
再重复之前的第4步还是不好使。单击右下角的commit and push可以上传。