来自iOS开发人员学习Android的两部分问题,研究Android项目,该项目将发出从JSON到图像到音频和视频的流媒体下载的各种请求:
在iOS上,我广泛使用了AFNetworking项目.是否有适用于Android的等效库?
我已经阅读了OkHTTP和Square的改造,以及Volley,但还没有与他们一起开发的经验.我希望有人可以提供一些最佳使用案例的具体例子.从我所看到的,看起来OkHTTP是三者中最强大的,并且可以处理这个项目的要求(如上所述).
我已经看到了关于最佳方法的不同建议这个问题包括创建一个罐子.在其他地方,我已经看到过简单地将凌空源复制到您自己的项目中的建议.关于android.com上的库的这一部分似乎是最具权威性的.然而,在编译齐射之后,我没有一个aal库,而那个部分说我应该有.
所以我的问题是:我有一个标准布局的现有Android Studio项目和一个git存储库; 我应该怎么做才能增加凌空抽射?我应该把它下载到哪里?我该如何将其添加到Android Studio?我需要修改哪些Gradle文件(如果有).
希望,对于那些已经做过几次的人来说,这应该是面包和黄油的东西,但我找不到直截了当的描述.
-
根据Scott Barta的建议更新.
volley存储库中的gradle.build文件具有此行.
apply plugin: 'android-library'
Run Code Online (Sandbox Code Playgroud)
根据文档:" 图书馆项目不生成APK,他们生成一个.aar包(代表Android档案). "然而,当我建立一个排球项目时,没有创建.aar.
我的感觉是,由于Volley是一个由Android团队创建的图书馆项目,它很可能被生成并用作.aar包.关于是否更好地生成.aar,以及如何做到这一点的任何建议,将不胜感激.
我是Android Studio的新手,我想为我的应用程序使用Volley库,但我无法在Android Studio中将源添加为库.
我在网上搜索但找不到任何东西.据说到处都是图书馆,但我不知道怎么做.
我从git存储库获得了截击源:
https://android.googlesource.com/platform/frameworks/volley
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将它作为库添加到我的项目中.
我试图按照此答案中的说明操作,但是android update project -p .在克隆volley文件夹中运行会抛出此错误:
Error: . is not a valid project (AndroidManifest.xml not found).
Run Code Online (Sandbox Code Playgroud) 我已经通过所有SO的解决方案来解决NetworkOnMainThreadException包括ASync类 - 但仍然有问题
这是我的简单代码:
ActivityMain类:
public class MainActivity extends Activity
{
ArrayList<City> alCities = new ArrayList<City>();
Activity activity=null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity=this;
new MyTask(activity, alCities).execute(); //<--- running ASYNC here
}
}
Run Code Online (Sandbox Code Playgroud)
MyTask类:
public class MyTask extends AsyncTask<Void, Void, ArrayList<City>>
{
ArrayList<City> alCities = null;
Activity ac = null;
public MyTask(Activity activity, ArrayList<City> al) //ctor
{
alCities = al;
this.activity= activity;
}
@Override
protected ArrayList<City> doInBackground(Void... params)
{
try
{
Object myJsonObject …Run Code Online (Sandbox Code Playgroud)