|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一个人负责协调他们的工作并且如果有新增加的衣服或者要移除之前的衣服通知他俩(NSManagedObjectContext)NSManagedObject自己处置iOS使用开辟已5年不足,直到如今还老是决心躲避Andriod使用的开辟。可是不论你信不信,安卓开辟仍是很成心思的,从iOS转向Android使用开辟的跨度并没有你设想的那末年夜。
如今我把在开辟7分钟练习这款Android使用中所学到的一些工具与人人分享,但愿能对你们有所匡助。必要指出的是,我稍后所对照的每一个项目并非完整婚配的,而且这篇文章并非一个完全的Android使用开辟概述,可是它包容了我从开辟这个复杂使用所学到的点点滴滴。
<br>
开辟情况
开辟情况我选择了AndroidStudio,我赌博当正式版公布今后,它将成为Android使用的尺度开辟情况。固然有良多关于AndroidStudio不不乱的行动,可是我只碰到了一次程序溃散,团体以为AndroidStudio不乱性尚可,大概是已顺应了Xcode的习气性程序溃散吧。
Java
说说你对Java懂得几,说白了它只是别的一门编程言语。像其他言语一样,帮忙你使用盘算机完成你的设法,假如你是个履历丰厚的程序员,你将会把更多的精神投进到使用的架构,而不是Java言语自己。谢天谢地,我们其实不必要进修J2EE。
摹拟器
在利用Android摹拟器之前,我习气性的以为iOS的摹拟器糟透了,如今看来iOS的摹拟器仍是很给力的。能不必Android摹拟器就只管别用,间接上真机调试;要否则你就筹办好把年夜把工夫花在无谓的守候上吧。
Storyboard/NIBS
关于storybaord的利用,在我之前iOS开辟的文章中已有所论述,在是不是利用Storyboard这个成绩上,以后还收到了持分歧意见的读者说话激烈的来信,明天对此我们不予会商。
Android利用xml来编写结构。分歧结构相互是完整自力的。AndroidStudio同时也供应了一个十分好的WYS|WYG编纂器:
<br>
你也能够深切原始xml文件举行编纂(我本人常常这么做)。
<br>
各类结构容器能够被用来当作主动结构的替换计划,好比RelativeLayout,Framelayout等等。选中结构后,你能够对结构的宽度,高度,添补,留白,比重等属性举行像素(dp设备像素)级的设定,大概间接将它们设置为matchparent,wrapcontent。
Wrap-content关于文原本说是个很好的选择,它会主动依据文原本决意视图的尺寸。
固然我还没有习气利用fragments,但仿佛的确是一个不错的自界说界面的复用的体例。
UIViewController
Android中同等于iOSUiViewController的是一个叫Activity的组件。你所看到的每一个视图和窗口都是一个Activity。在Activity中,你做的最多的就是把数据和UI绑定,处置各类事务等等。
TransitioningControllers/Views
在iOS中我们利用segues、pushViewController、presentController举行分歧视图间的切换。在Android中,我们则用一个叫Intent的组件。
你能够轻松地利用intent往创立一个新的Activity,乃至是传送一些数据给新创立的Activity。
publicvoidonItemClick(...){
Intenti=newIntent(getBaseContext(),MyActivity.class);
i.putExtra("row",position);
startActivity(i);
}
在新创立的Activity(如上所示的MyActivty)中,你能够以如许体例提取之前Activity传送的数据。
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mine);
Bundleextras=getIntent().getExtras();
if(extras!=null){
introw=extras.getInt("row");
....
}
...
}
你也能够利用Intent往触发一些工具,比方:分享页面。
1
2
3
4
5
IntentsendIntent=newIntent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT,"ShareThis");
sendIntent.setType("text/plain");
startActivity(sendIntent);
IBOutlet
假如你像我一样最少有一半工夫会健忘毗连IBOutlets,Android将是你的福音。
Android中每个视图/组件都有一个独一的ID,比方:
@+id/myButton
Android将会为这些ID主动天生一个叫做R的类(想懂得更多R点击这里),你能够经由过程以下的体例来操纵这个Button对象。
1
Buttonbutton=(Button)findViewById(R.id.myButton);
Tag
为视图设置一个tag来查找信息是iOS开辟者们经常使用的一个小技能,比方:数组的偏移。而在Android你能够讲这个对象设置成tag,相称的有效。
1
row.setTag(data);
UITableViewController/UITableViewDataSource/UITableViewCell
在Android中与UITableView绝对应的是ListView。
与UITableViewDataSource大致上绝对应的是ArrayAdapter:
1
2
MyAdapteradapter=newMyAdapter(this,R.layout.listview_item_row);
listView.setAdapter(adapter);
如上的例子中,listviewitemrow是结构中的一行,大致上相称于一个UITableViewCell。
Adapter经由过程getView来创立或复用分歧的列。
你还能够设置表头:
1
2
Viewheader=getLayoutInflater().inflate(R.layout.listview_header_row,null);
listView.addHeaderView(header);
网上有年夜把相干的好教程,比方这个。
Images/Resources
自从AssetCatalogues在iOS呈现后,关于图片的处置就轻松了良多,并且只必要对付retina和非retina屏幕便可(除非你另有专门为iPad利用的图片)。
为了顺应分歧Android设备的分辩率,你必要供应四套分歧尺寸的图片。
<br>
它们分离是:mdpi(中等质量)、hdpi(高质量)、xhdpi(超高质量),xxhdpi(宇宙无敌高质量)。团体很等候xxhdpi画质的呈现。
当你在AndroidStudio里创立工程的时分,它会为你所供应的使用图标主动天生四种分歧尺寸的图标。这可把计划师们吓的心肝儿发颤了吧,别忧虑,稍后它们仍是能够被完善的图标所交换的。
以是,基础的理念就是对应分歧的屏幕分辩率创立分歧的图片,并用与之绝对应的屏幕分辩率的名字定名后,放进准确的文件夹中,以后的事变就交给Android去向理吧。
自界说字体
自界说字体在Android中也相称简单完成:拷贝字体到main/assets文件夹,以后你能够像如许挪用他们:
1
2
Typefacefont=Typeface.createFromAsset(getAssets(),"Lato-Regular.ttf");
textView.setTypeface(font);
这类办法并非在一切设备上都可行,最好仍是加上try/catch办法来处置非常,便是在我的两台Android设备上历来没有呈现过非常。
NSLog
看来Log仿佛是Android给我们供应的办理计划,你指定log的范例:debug,verbose等等。固然,Java最基础的打印语句System.out.println(..)也是行得通的。
向下兼容性
我们常传闻Android碎片化。关于这个成绩在Android中的办理技能,跟我们在利用iOS新特征又要分身老版本时所接纳的技能基础上差未几。你大概必要更频仍,更久长的利用这些技能。
Android中有一个十分有效的常量供你查询以后的Android的API版本号。
1
2
3
if(Build.VERSION.SDK_INT>=11.0){
...
}
你能够如许来屏障告诫:
<p>1
2
3
4
<p>@SuppressLint |
|