Android 环境配置
一、开发环境配置
1、使用 eclipse
需要下载安装 Android SDK、Eclipse、ADT 插件。
也可以直接下载整合好的 ADT Bundle 包,下载地址:
http://developer.android.com/sdk/index.html#download
解压后有 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-\sdk\tools;D:\win_soft\adt-bundle-windows-x86_64-\sdk\platform-tools;D:\win_soft\adt-bundle-windows-x86_64-\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 多国语言包下载地址:
http://download.eclipse.org/technology/babel/babel_language_packs/R0.11.0/kepler/kepler.php
找到简体中文,如 BabelLanguagePack-eclipse-zh_4.3.0.v20130724043401.zip (88.4%) 点击下载,解压后覆盖到 eclipse 目录即可完成汉化。
2、使用 android studio
略
二、模拟器
1、真机调试
如果使用小米2,在用豌豆夹安装驱动之后,如果在 Eclipse 的 devices 还是看不到,则需要在拨号界面输入: *#*#717717#*#*,提示 "Enable usb Port" 即可。
导入其它 Android 项目时,可能会出现 Failed to create BuildConfig class 的错误,这时只需要点击菜单中项目——>清理即可,如果还不行,删除 gen 文件夹(会重新自动生成)。
2、模拟器
官方自带的模拟器太慢了,不考虑。可以使用 Genymotion 来替代,不过它目前貌似只支持 Android 4.0 以上版本。
下载地址:
http://www.genymotion.cn/#theme=download
下载后安装,会附带安装上 VirtualBox ,如果没有附带安装,则自己再下载安装它。安装完运行起来,需要登录才能使用,可以到下面的网址去注册个帐号(注册到登录邮箱激活,不要忘了):
https://cloud.genymotion.com/page/customer/login/
登录之后开始添加模拟器,选择一个机型然后添加吧,接下来是漫长的下载模拟器的过程。完成之后就可以启动模拟器了,非常快,很流畅,此时调试就可以使用它了。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 这个界面配置文件。
Android 环境配置的更多相关文章
- [Android] 环境配置之正式版Android Studio 1.0
昨天看见 Android Studio 1.0 正式版本发布了:心里挺高兴的. 算是忠实用户了吧,从去年开发者大会一开始出现 AS 后就开始使用了:也是从那时开始就基本没有用过 Eclipse 了:一 ...
- [Android] 环境配置之基础开发环境(SDK/Android Studio)(转)
[Android] 环境配置之基础开发环境(SDK/Android Studio) 博客: blog.csdn.net/qiujuer 网站: www.qiujuer.net 开源库: Geniu ...
- cocos2dx - android环境配置及编译
接上一节内容:cocos2dx - 伤害实现 本节主要讲Android环境配置及编译 在第一节中setup.py的配置里,我们没有配置对应的ndk,sdk,ant的路径,在这里需要先配置好环境变量. ...
- 【React Native开发】React Native For Android环境配置以及第一个实例(1)
年9月15日也公布了ReactNative for Android,尽管Android版本号的项目公布比較迟,可是也没有阻挡了广大开发人员的热情.能够这样讲在2015年移动平台市场上有两个方向技术研究 ...
- [Android] 环境配置之Android Studio开发NDK
分类:Android环境搭建 (14351) (20) ========================================================作者:qiujuer博客:bl ...
- Android环境配置(Eclipse全开发环境下载)
Android环境配置 前期准备 Android环境的Eclipse: 网站链接:https://www.runoob.com/w3cnote/android-tutorial-eclipse-adt ...
- Android环境配置之正式版AndroidStudio1.0
昨天看见 Android Studio 1.0 正式版本发布了:心里挺高兴的. 算是忠实用户了吧,从去年开发者大会一开始出现 AS 后就开始使用了:也是从那时开始就基本没有用过 Eclipse 了:一 ...
- OpenCV On Android环境配置最新&最全指南(Android Studio篇)
本文是从本人简书上搬运而来,属本人原创,如有转载,请注明出处:http://www.jianshu.com/p/6e16c0429044 简介 本文是<OpenCV On Android环境配置 ...
- OpenCV On Android环境配置最新&最全指南(Eclipse篇)
简介 本教程是经过本人多次踩坑,并参考网上众多OpenCV On Android的配置教程总结而来,尽希望能帮助学习移动图像处理的朋友们少走弯路.这也是本人第一次在简书上发布文章,如有不足,希望各位d ...
- Android环境配置及运行helloWord案例
Android的环境搭建步骤,以及输出一个helloWorder 1:下载Android开发环境 及是: SDK adt-bundle-windows-x86_64-20140702 此时的版 ...
随机推荐
- 【BZOJ-1857】传送带 三分套三分
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1077 Solved: 575[Submit][Status][ ...
- BZOJ3295 [Cqoi2011]动态逆序对
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- MVC3项目依赖文件错误解决
MVC3的项目依赖分为两大类: 1.ASP.NET Web Pages 2.ASP.NET MVC 3 如果没有正确引入,或者项目的版本有错误会出现程序集引用错误. 在服务器上部署时,解决思路如下: ...
- 微信公众平台教程和SDK收集
教程收集: 1.Senparc(.net) http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html 2.方倍工作室 ...
- RabbitMQctl命令
RabbitMQControl RabbitMQ提供了可视化的网页供我们进行一些配置与操作,但是ctl的命令比UI来的专业的多,一些UI无法完成的操作就需要使用ctl命令来进行处理了 这里是官方的文档 ...
- U盘容量减少的解决办法
今天是使用以前的U盘的时候发现原来4G的U盘容量居然只剩下了700M,不是说u盘的可用空间是700M,而是在电脑上面显示的总空间为700M.在电脑上面格式化之后也没起作用. 经过Google找到了在w ...
- 总结的一些网站利于搜索引擎优化的小常识及SEO优化
网站利于搜索引擎优化的小常识 1. 尽量用独立IP和空间原因:同IP下其他网站受罚,可能会对你站有影响.如果你的站和很多垃圾.色情站同在一个服务器,搜索引擎会喜欢吗? 2. 做不同内容网站时,避免使用 ...
- OpenGLES入门笔记三
在入门笔记一中比较详细的介绍了顶点着色器和片面着色器. 在入门笔记二中讲解了简单的创建OpenGL场景流程的实现,但是如果在场景中渲染任何一种几何图形,还是需要入门笔记一中的知识:Vertex Sha ...
- java8 中的时间和数据的变化
java8除了lambda表达式之外还对时间和数组这两块常用API做想应调整, Stream 有几个常用函数: store 排序 (a,b)-> a.compareTo(b) 排出来的结果是正 ...
- [转发]dsdt解决睡眠唤醒死机
登录 注册 首页 热门话题 最新发布 简单模式 详细模式 dsdt解决睡眠唤醒死机 Leave a reply 首先,感谢x5115x提供了一个相对比较完整的THINKPAD T410在MAC下的 ...