以下內容含腳本,或可能導致頁面不正常的代碼 |
---|
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行. |
在塞格勒看來,上述觀點除了其與比奇之外,還會有更多人贊同。
塞格勒表示,在過去的幾年中,其已經使用了6款不同的Android手機,盡管如此,塞格勒仍無法喜歡上Android手機。如今,新版的Android手機要比iPhone面世前的各種老版手機好了上百萬倍。對此,塞格勒認為,如果沒有iPhone的出現,其會毫不猶豫地選擇Android手機,并可能也會對Android產品感到滿意,但事實情況是,iPhone手機已經面世,而且其要優于Android,因此,塞格勒也開始動搖對Android的信念。
塞格勒的觀點是:追求最好!但是,此分析師認為導致iPhone未被其視為最佳手機產品的主要原因就是AT&T的相關規定,并且為了擺脫這些規定,塞格勒又再次選擇了Android手機,而將iPhone暫時擱置一邊。
塞格勒還表示,盡管iPhone的好多功能和外部特征都優于Android手機,甚至有一些Android手機的忠實支持者也會認為iPhone具有更好的用戶體驗,但這些支持者卻由于AT&T針對iPhone手機的一些規定和要求而再度選擇Android產品。例如,他們痛恨AT&T禁止在iPhone上使用Google Voice服務,對此塞格勒本人也非常痛恨。另外,這些支持者也痛恨蘋果公司在應用商店方面也設置重重障礙(塞格勒本人也對蘋果這些障礙政策持反對態度)。
不過,也有多數消費者認為,這些都不是構成他們不喜歡iPhone的真正原因,他們甚至會對這些限制性措施視而不見,而他們的確不喜歡iPhone的真正原因就是因為AT&T公司(特別是在美國市場)。
塞格勒總體認為,手機市場的競爭非常激烈,但對于iPhone登陸Verizon之后的銷量是否會大幅增長以及Android手機銷量是否會因此削弱,目前仍不得而知。不管是否會有大量的Android用戶會在iPhone登陸Verizon之后轉向iPhone手機,但無論如何,針對這種情形,Google一定會采取相應的應對措施
]]>比如我們要找個int func(double)類型的函數,就該這么寫:
jmethodID construction_id = env->GetMethodID(obj_class, " func ", "(D)I");
找到了構造函數的方法之后我們直接調用構造函數,然后把生成的類返回即可
jobject obj = env->NewObject(obj_class, construction_id);
其中obj_class為類的句柄construction_id為構造函數的句柄,而類的實例被該函數返回。
5.3 調用java類的其他函數
JNIEXPORT jstring JNICALL Java_com_hm_hello_CActivityMain_stringFromJNI
(JNIEnv* env, jobject)
{
jstring str;
jclass java_class = env->FindClass("com/hm/hello/CForCall");
if (java_class == 0)
{
return env->NewStringUTF("not find class!");
}
jobject java_obj = getInstance(env, java_class);
if (java_obj == 0)
{
return env->NewStringUTF("not find java OBJ!");
}
jmethodID java_method = env->GetMethodID(java_class, "GetJavaString", "()Ljava/lang/String;");
if(java_method == 0)
{
return env->NewStringUTF("not find java method!");
}
str = (jstring)env->CallObjectMethod(java_obj, java_method);
return str;
}
看完了構造函數的介紹,這段代碼其實很容易就看懂了,我們發現調用java中的函數的步驟無非幾步:
1找到類句柄
2找到類的方法的句柄
3實例化類
4調用實例化類的方法。
而以上代碼中只有一段沒說過,就是
jclass java_class = env->FindClass("com/hm/hello/CForCall");
看名字就知道,是在找相應的類的句柄,其中com.hm.hello準備調用類的完整包名(把.轉換為/),而CforCall就是我們要調用的類的名稱。
至此,編譯,然后在Android調試,可愛的機器人又出現了,哈哈,屏幕上顯示出現了12345,成功!
1264632164_bFh1SY.jpg (34.57 KB)
下載次數:0
2010-1-28 15:54
2412298499.jpg (30.2 KB)
下載次數:0
2010-1-28 15:54
正文:
FiledUnder以下內容含腳本,或可能導致頁面不正常的代碼 |
---|
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行. |
系統 |
2009 |
2010 |
2011 |
2014 |
Symbian |
8087.63 |
10766.24 |
14127.86 |
26435.18 |
市場份額(%) |
46.9 |
40.1 |
34.2 |
30.2 |
Android |
679.84 |
4746.21 |
9193.77 |
25930.64 |
市場份額(%) |
3.9 |
17.7 |
22.2 |
29.6 |
Research In Motion |
3434.68 |
4692.29 |
6219.82 |
10257.95 |
市場份額(%) |
19.9 |
17.5 |
15.0 |
11.7 |
iOS |
2488.98 |
4146.18 |
7074.00 |
13039.30 |
市場份額(%) |
14.4 |
15.4 |
17.1 |
14.9 |
Windows Phone |
1503.11 |
1268.65 |
2130.88 |
3449.02 |
市場份額(%) |
8.7 |
4.7 |
5.2 |
3.9 |
其他操作系統 |
1043.19 |
1258.81 |
2601.73 |
8445.29 |
市場份額(%) |
6.1 |
4.7 |
6.3 |
9.6 |
市場總量(萬臺) |
17237.43 |
26878.37 |
41348.05 |
87557.38 |
操作系統 |
2010 市場份額 |
2014 市場份額 |
2014/2010變化 |
Symbian |
40.1% |
32.9% |
-18.0% |
BlackBerry OS |
17.9% |
17.3% |
-3.5% |
Android |
16.3% |
24.6% |
51.2% |
iOS |
14.7% |
10.9% |
-25.8% |
Windows Mobile |
6.8% |
9.8% |
43.3% |
其他 |
4.2% |
4.5% |
8.3% |
總計 |
100.0% |
100.0% |
先上截圖:
應用的主要功能是根據適當的情景(如地點,手機狀態等)為用戶自動的切換情景模式。
比方說:手機向上是鈴音+震動,當開會時,將手機翻轉,將自動切換成靜音模式。
還可以根據經緯度,到達一個地方后自動切換成用戶預先設置的情景模式。
(當然,由于沒找到合適的經緯度換算工具,經緯度的判斷目前只能是精確位置,不是范圍值。
因此只能算是個學習的小應用了,實際的應用還有待完善啊。如果有高手知道的話,麻煩告訴我下。萬分感謝)
-------------------------廢話不多說開始代碼部分-----------------------------------------------------
雖然是一個只有一個頁面的小應用,但是
麻雀雖小,五臟俱全
這個應用的功能點主要有:
改變情景模式
實時獲取地理位置
實時判斷手機重力狀態
用到的技術包括:
1.android Google map的應用
2.Android組件的使用
Activity(MapActivity)
Service
Broadcastreceiver
3.Xml解析
4.文件存儲
5.傳感器使用
6.底層繪圖
7.自定義view
由于使回頭看代碼,我就從簡單的部分一步步介紹。
首先是權限問題,很多新手都犯了這個毛病,程序出錯,往往是權限沒有添加。
<!-- 網絡鏈接 --> <uses-permission android:name="android.permission.INTERNET"/> <!-- 地圖 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <!-- 讀寫權限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE" />
這個應用需要網絡連接的權限,因為Google map是實時更新的么。然后是GPS傳感器關于地理位置的權限。最后需要存儲用戶的記錄點,所以有文件讀寫的權限。
為了記錄用戶記錄的情景地點,我使用了XML作為存儲的標準,并將文件存在了SD卡上
XML解析
網絡上有很詳細的各種解析方式,我采用了其中的一種。如果想了解其他的請Google。。。。。
記錄地點信息,我定義了一個POJO類
public class RecordLocation { private String location_Id; private String location_ring; private double location_latitude; private double location_longitude; private GeoPoint point; ...篇幅關系,其他的略
XML的解析器,和網絡上的其他文章一樣就不多說了。能拿來用就成。