我们经常会用Mac系统创建IOS应用项目,但是如何在Mac系统中创建Android应用项目呢?下面我给大家分享一下。
工具/材料Android Studio
首先我们在Mac系统中要安装Android Studio软件,然后点击Start a new Android Studio project选项,如下图所示
接下来进入项目名称设置界面,这里需要给项目起一个名字,如下图所示
然后需要我们选择一下创建的Android应用运用哪个SDK,如下图所示,我建议选择比较稳定的版本
接下来会进入主界面样式选择界面,我们选择空模板样式即可,如下图所示
接着给主界面文件起名字,这里默认是MainActivity,我们不需要设置,默认即可,如下图所示
设置完以上信息以后,我们就可以看到Android Studio就会进入项目创建进度了,如下图所示
接下来创建好项目以后,默认主界面就会显示项目列表,如下图所示
如果想运行项目的话我们点击顶部的运行按钮即可,如下图所示
最后Android Studio就会启动Android手机模拟器来展示我们项目的信息了,如下图所示
创建Hello Android项目
ADT提供了简单的生成Andriod应用框架的功能,我们现在使用ADT通过Eclipse创建一个Android工程,其步骤如下。
(1) Eclipse开发工具,新建一个项目,在d出的"New Project"对话框的列表中展开"Android"项,然后选择"Android Project"子项,如图2-28所示。
(2) 点击"Next"按钮,在"Project name"文本框中输入"HelloAndroid",然后在"Build Target"选项框中选择"Android SDK 1.5",在Application name文本框中输入这个应用程序的名字(HelloAndroid),在Package name文本框中输入应用程序包的名字(com.yarin.Android.HelloAndroid),在Create Activity文本框中输入Activity的名字(HelloAndroid),如图2-29所示。
(3) 单击"Finish"按钮,此时Eclipse会自动完成Android项目的创建,这时Eclipse开发平台左边的导航器中显示了刚才创建的项目"HelloAndroid"。如果没有出现导航器,则可以通过单击"Window"→"Show View" →"Package Explorer"菜单命令来显示导航器,如图2-30所示。
目的:在通话设置菜单下,添加一dect设置菜单,里面再添加一checkBOxPreference来使能硬件模块。
-------------------------
目前做的项目,需要在系统settings里面添加一选项来使能硬件模块,里面涉及到的preference知识,请网上了解,这里记录下方法。
1,settings 应用一般在 目录:\packages\apps\Settings,我们先找到通话设置的布局位置,看看它在那个包路径下,进入\packages\apps\Settings\res\xml,打开settings.xml文件:
Java代码
<com.android.settings.IconPreferenceScreen
android:key="call_settings"
settings:icon="@drawable/ic_settings_call"
android:title="@string/call_settings_title">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.CallFeaturesSetting" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen
android:key="call_settings"
settings:icon="@drawable/ic_settings_call"
android:title="@string/call_settings_title">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.CallFeaturesSetting" />
</com.android.settings.IconPreferenceScreen>
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.CallFeaturesSetting"
targetPackage:表示包名,根据此我们可以找到通话设置的路径。
targetClass:表示此布局文件被那个类所引用,根据此类,我们可以知道在那个文件里面管理我们的通话设置功能。 www.55zm.com
2.根据包名,我们可以看到在\packages\apps\Phone 目录下,进入\res\xml目录下
找到通话布局文件:call_feature_setting.xml,根据类名,很容易找到布局文件。
里面内容如下:
Java代码
<PreferenceCategory android:key="button_misc_category_key"
android:title="@string/other_settings"
android:persistent="false" />
<!-- Dect settings -->
<PreferenceScreen
android:key="dect_settings"
android:title="@string/dect_module_title"
android:summary="@string/dect_module_title" >
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.DectSettings" />
</PreferenceScreen>
<CheckBoxPreference
android:key="button_auto_retry_key"
android:title="@string/auto_retry_mode_title"
android:persistent="false"
android:summary="@string/auto_retry_mode_summary"/>
<PreferenceCategory android:key="button_misc_category_key"
android:title="@string/other_settings"
android:persistent="false" />
<!-- Dect settings -->
<PreferenceScreen
android:key="dect_settings"
android:title="@string/dect_module_title"
android:summary="@string/dect_module_title" >
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.DectSettings" />
</PreferenceScreen>
<CheckBoxPreference
android:key="button_auto_retry_key"
android:title="@string/auto_retry_mode_title"
android:persistent="false"
android:summary="@string/auto_retry_mode_summary"/>
Dect setting 就是新添加进入的设置菜单,我们的原则尽量不大量修改,所以添加一个PreferenceScreen,新增一个类文件来管理DECt菜单选项。
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.DectSettings"
我们指明了包名,类名后,因这是个activity,所以我们需要到Phone目录下修改
AndroidManifest.xml文件,指明启动的activity的类名.
Java代码
<activity android:name="CdmaCallOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<!-- dect activity -->
<activity android:name="DectSettings"
android:label="@string/dect_module_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<activity android:name="CdmaCallOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<!-- dect activity -->
<activity android:name="DectSettings"
android:label="@string/dect_module_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
3.修改好后,我们必须在此activity里添加preference布局文件。
在此目录Phone\res\xml下,新增dect_settings.xml
Java代码
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/dect_module_title">
<CheckBoxPreference
android:key="button_dect_module_key"
android:title="@string/dect_module_title"
android:defaultValue="true"
android:summaryOn="@string/dect_module_start"
android:summaryOff="@string/dect_module_stop"
/>
</PreferenceScreen>
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/dect_module_title">
<CheckBoxPreference
android:key="button_dect_module_key"
android:title="@string/dect_module_title"
android:defaultValue="true"
android:summaryOn="@string/dect_module_start"
android:summaryOff="@string/dect_module_stop"
/>
</PreferenceScreen>
好了,总体布局已经完成
4.在\packages\apps\Phone\src\com\android\phone目录下
新增DectSettings.java文件
加载布局文件:
//dect xml
addPreferencesFromResource(R.xml.dect_settings)
里面涉及到的MidPhoneServce服务,是自己添加的,主要通过此服务的AIDL接口跟硬件打交道。想了解系统服务,请网上查找资料。
源码如下:
Java代码
package com.android.phone
import android.content.DialogInterface
import android.os.AsyncResult
import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.preference.CheckBoxPreference
import android.preference.Preference
import android.preference.PreferenceActivity
import android.preference.PreferenceScreen
import android.content.SharedPreferences
import android.content.SharedPreferences.Editor
import android.content.pm.ActivityInfo
import android.content.pm.PackageManager
import android.content.pm.ResolveInfo
import android.os.Bundle
import android.os.Handler
import android.util.Log
import android.content.Context
import com.android.phone.R
import android.os.IMidPhoneService
import android.os.RemoteException
import android.os.ServiceManager
import android.provider.Settings
public class DectSettings extends PreferenceActivity {
private static final String TAG = "DectSettings"
private static final String BUTTON_DECT_KEY = "button_dect_module_key"
private CheckBoxPreference mButtonDect
public IMidPhoneService midphoneservice = null
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle)
//dect xml
addPreferencesFromResource(R.xml.dect_settings)
mButtonDect = (CheckBoxPreference)findPreference(BUTTON_DECT_KEY)
mButtonDect.setPersistent(false)
if(mButtonDect != null) {
int dect_state = Settings.System.getInt(
getContentResolver(),Settings.System.DECT_SAVED_STATE, 1)
mButtonDect.setChecked( dect_state!= 0)
Settings.System.putInt(getContentResolver(),
Settings.System.DECT_SAVED_STATE,dect_state)
Log.e(TAG,"settings:------------->" + dect_state)
}
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference == mButtonDect ) {
int dect = mButtonDect.isChecked() ? 1 : 0
boolean state
if(dect == 1)
state = true
else
state = false
try{
midphoneservice = IMidPhoneService.Stub.asInterface(ServiceManager.getService("midphone"))
Settings.System.putInt(getContentResolver(),
Settings.System.DECT_SAVED_STATE,dect)
midphoneservice.setDectEnabled(state)
Log.e(TAG,"settings:------------->" + dect)
} catch (RemoteException e) {
e.printStackTrace()
}
return true
}
return false
}
@Override
protected void onResume() {
super.onResume()
if (mButtonDect != null) {
mButtonDect.setChecked(Settings.System.getInt(
getContentResolver(),
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)