博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 环境配置
阅读量:7041 次
发布时间:2019-06-28

本文共 4625 字,大约阅读时间需要 15 分钟。

一、开发环境配置

1、使用 eclipse

需要下载安装 Android SDK、Eclipse、ADT 插件。

也可以直接下载整合好的 ADT Bundle 包,下载地址:

解压后有 sdk 和 eclipse 两个文件夹,还有一个 SDK Manager.exe 文件,双击它来安装 SDK,如果出现双击一闪而逝的问题,只需要删除 C:\Windows\System32\ 下的 java.exe、javaw.exe、javaws.exe 即可。

如果解压到 D:\win_soft 文件夹,则在环境变量中 PATH 添加下面:

D:\win_soft\adt-bundle-windows-x86_64-20130729\sdk\tools;D:\win_soft\adt-bundle-windows-x86_64-20130729\sdk\platform-tools;D:\win_soft\adt-bundle-windows-x86_64-20130729\sdk\build-tools\android-4.3

另外 Android SDK 下载和更新都非常容易失败,那是因为 dl-ssl.google.com 被墙了,需要修改 C:\Windows\System32\drivers\etc\hosts 文件,在最后加上一句:

74.125.237.1       dl-ssl.google.com

Eclipse 多国语言包下载地址:

找到简体中文,如  点击下载,解压后覆盖到 eclipse 目录即可完成汉化。

 

2、使用 android studio

 

二、模拟器

1、真机调试

如果使用小米2,在用豌豆夹安装驱动之后,如果在 Eclipse 的 devices 还是看不到,则需要在拨号界面输入:  *#*#717717#*#*,提示 "Enable usb Port" 即可。

导入其它 Android 项目时,可能会出现 Failed to create BuildConfig class 的错误,这时只需要点击菜单中项目——>清理即可,如果还不行,删除 gen 文件夹(会重新自动生成)。

2、模拟器

官方自带的模拟器太慢了,不考虑。可以使用 Genymotion 来替代,不过它目前貌似只支持 Android 4.0 以上版本。

下载地址:

下载后安装,会附带安装上 VirtualBox ,如果没有附带安装,则自己再下载安装它。安装完运行起来,需要登录才能使用,可以到下面的网址去注册个帐号(注册到登录邮箱激活,不要忘了):

登录之后开始添加模拟器,选择一个机型然后添加吧,接下来是漫长的下载模拟器的过程。完成之后就可以启动模拟器了,非常快,很流畅,此时调试就可以使用它了。Genymotion 可以使用 VirtualBox 管理,OK,不用的时候就休眠吧!

如果安装 apk 时出现:INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 的错误,是因为不支持 ARM ,请下载安装 Genymotion-ARM-Translation.zip,拖到模拟器窗口中,点 OK 安装好,然后重启你模拟器。

 

三、其它设置

eclipse 的中文注释太小了,可以通过菜单 window->preferences-General->Appearance->Colors and Fonts->Basic->Test Font->Edit->微软雅黑。

 

使用 @ 符号,可以在一个资源中引用另一个资源

@+id 新增一个资源id

@id和android:id,引用现有的资源id

 

Android在4.0之前的版本 支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主线程中了。

可以在 onCreate() 方法中,粘贴下如下代码:

 

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()          .detectDiskReads()          .detectDiskWrites()          .detectNetwork()   // or .detectAll() for all detectable problems          .penaltyLog()          .build());  StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()          .detectLeakedSqlLiteObjects()          .detectLeakedClosableObjects()          .penaltyLog()          .penaltyDeath()          .build());

 

这样就可以在主线程中进行网络操作了。另外,还可以通过  new Thread(runnable).start();  在子线程中进行网络操作。但是,线程中不能对控件进行设置操作,需要使用一个Handler来进行对相关值的设置。如:

public class MainActivity extends Activity {    TextView tv;     Button btn;    Handler mHandler;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                btn = (Button)findViewById(R.id.button01);        tv = (TextView)findViewById(R.id.tv01);                btn.setOnClickListener(new View.OnClickListener() {                        @Override            public void onClick(View v) {                new Thread(new Runnable(){                    public void run(){                        mHandler.sendMessage(mHandler.obtainMessage());                    }                }).start();                            }                        });                    mHandler = new Handler() {            public void handleMessage(Message msg){                 super.handleMessage(msg);                 tv.setText("OK");    //线程里不能修改控件的值,可以在这里修改                                 }        };    }}

 

 JSON 库对比:

Android 的 SDK 中内置的 JSON 解析类,读写Json还都要停留到手工操作上,无法直接实现Json字符串到对象、对象到Json字符串的转换。

另外常见 JSON 库解析效率:Jackson>Gson>JSON-lib,(Jackson 网上测试比 JSON-lib 快十倍左右,Gson 比 JSON-lib 快一点,约一倍左右,且 Gson 比 JSON-lib 开发效率更高)但: 

jackson-all-1.9.0.jar         1.1MB

gson-1.7.1.jar                 174KB

json-lib-2.4-jdk15.jar      159KB    (2010年12月开始已经停止更新了)

所以一般选择  Jackson 和 Gson,这就看你的 Android 程序是对应用大小更敏感还是JSON效率更敏感了,一般选择 Gson。

 

ScrollView与ListView共存会存在滚 动的问题,并且ListView只显示一个半Item。 当ListView的高度设定一定的值时,ListView同样地会显示对应的高度的Item。 因此我们可以计算出这个ListView的总高度,再将它设置到ListView中,那么之前的滚动,高度问题也就不存在了。

public void setListViewHeightBasedOnChildren(ListView listView) {      ListAdapter listAdapter = listView.getAdapter();       if (listAdapter == null) {          return;      }      int totalHeight = 0;      for (int i = 0; i < listAdapter.getCount(); i++) {          View listItem = listAdapter.getView(i, null, listView);          listItem.measure(0, 0);          totalHeight += listItem.getMeasuredHeight();      }      ViewGroup.LayoutParams params = listView.getLayoutParams();      params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));      ((MarginLayoutParams)params).setMargins(10, 10, 10, 10);    listView.setLayoutParams(params);  }

 

Android 启动时,会首先读取 AndroidManifest.xml 配置文件,然后根据其中的配置调用 MainActivity.java 的 onCreate() 方法,然后会通过 setContentView(R.layout.activity_main); 调用 activity_main.xml 这个界面配置文件。

转载于:https://www.cnblogs.com/tianyajuanke/p/3259171.html

你可能感兴趣的文章
UIPopoverController事件分发
查看>>
记一次在线安装postgresql-9.4的问题
查看>>
zabbix/自动发现规则
查看>>
SQL Server 命令行操作
查看>>
当cpu飙升时,找出php中可能有问题的代码行
查看>>
独孤九剑与黑客编程
查看>>
【windows8开发】序
查看>>
NAT方式,宿主机无法ping通虚拟机
查看>>
RabbitMQ配置
查看>>
bzoj3654 图样图森破
查看>>
四则运算一
查看>>
用Javascript获取页面元素的位置
查看>>
electron 学习笔记
查看>>
vs 开发 qt 遇到 无法找到 Visual Studio 2010 的生成工具(平台工具集 =“v100”) 解决方案...
查看>>
Oracle死锁处理实例
查看>>
[转]Android Studio创建Xposed模块项目时BridgeApi的正确添加方式
查看>>
【hive】——Hive sql语法详解
查看>>
python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)...
查看>>
一篇网络流的好blog
查看>>
Python基础之继承与派生
查看>>