全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1052
推到 Plurk!
推到 Facebook!

FireMonkey 閃退問題

 
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2016-03-23 01:19:16 IP:118.169.xxx.xxx 未訂閱
真正投入FireMonkey的行動裝置後, 發現在 Android / Win 上運作都還算不錯, 但在 ios上卻是閃退頻傳, 平均10次有6次以上, 雖然不排除是個人的設計有瑕疵, 在相同的code 在 Anodrid / Win 上是相較穩的, 這就讓人難信服是設計的問題
像我的會閃退有在

gps 取得
datasanp 連線
開啟 frame, form
button的點擊(沒任何事, 按下就退)
使用 LIstBox 閃退情況也不少
使用 ListView LiveBinding 閃退最嚴重
使用 LiveView 加手勢左右滑動可啟動 ListView 的內建的刪除功能, 幾乎百分百閃退

這些閃退都不是固定的模式, 這次退了, 下進來來又不會, 相當大的一個困擾, 唉! 發發牢騷罷了!
GrandRURU
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2016-03-23 17:39:19 IP:59.120.xxx.xxx 未訂閱
看起來是很複雜的系統
如果拆開來分成數個App呢?

以著名的「Runtastic」為例,它就推出了許多類似的 App

你想想,如果它把所有的子APP都放到同一個APP裡,是不是也有可能發生閃退的問題呢?

===================引 用 P.D. 文 章===================
真正投入FireMonkey的行動裝置後, 發現在 Android / Win 上運作都還算不錯, 但在 ios上卻是閃退頻傳, 平均10次有6次以上, 雖然不排除是個人的設計有瑕疵, 在相同的code 在 Anodrid / Win 上是相較穩的, 這就讓人難信服是設計的問題
像我的會閃退有在

gps 取得
datasanp 連線
開啟 frame, form
button的點擊(沒任何事, 按下就退)
使用 LIstBox 閃退情況也不少
使用 ListView LiveBinding 閃退最嚴重
使用 LiveView 加手勢左右滑動可啟動 ListView 的內建的刪除功能, 幾乎百分百閃退

這些閃退都不是固定的模式, 這次退了, 下進來來又不會, 相當大的一個困擾, 唉! 發發牢騷罷了!
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2016-03-23 22:46:23 IP:118.169.xxx.xxx 未訂閱
目前這支app只有一個功能, 就是透過 datasnap 可以存取後台的dtatabase (包含 insert, edit)
要說功能複雜嘛~~就這麼個功能, 但因為後端有太多資料庫是關連的, 要能在手機上可完整搜尋及存取,
必須有相關的設計, 所以程式碼真的不少(約10萬), 單就此一功能要切開來, 還真不知由那下手, 難度很高!
Lordaeron
初階會員


發表:22
回覆:93
積分:33
註冊:2004-05-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2016-04-26 14:53:33 IP:175.184.xxx.xxx 訂閱
有人說,UPGRADE一下SDK吧。看會不會好一點。
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2016-04-27 00:29:43 IP:118.169.xxx.xxx 未訂閱
感謝指點, 我的 SDK 都隨時保持更新狀態, 但相較版本越上去越顯不穩定
===================引 用 Lordaeron 文 章===================
有人說,UPGRADE一下SDK吧。看會不會好一點。
pcplayer99
尊榮會員


發表:142
回覆:740
積分:591
註冊:2003-01-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2016-04-27 09:54:16 IP:120.237.xxx.xxx 訂閱
我的经验,如果去操作了一个不存在的 Object,在 Windows 底下,会弹出 AV 错误提示框。在 Android 底下,就是直接闪退。

另外,估计内存耗尽,也会闪退。

有一种办法,就是把程式切成两半,看看哪一半会导致闪退。
pcplayer99
尊榮會員


發表:142
回覆:740
積分:591
註冊:2003-01-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2016-04-27 10:07:38 IP:120.237.xxx.xxx 訂閱
比如昨天我查一个闪退问题,查了2小时。

我的一个 APP,用 ListBox 显示一个 File list。本来一直好好的。后来怕 file 太多,想改成翻页。改完后,发现 ListBox 也能显示 File List,但手一摸,它就闪退了。

翻页也就是计算一下 File List 的条数。往 ListBox 上面一条一条创建 ListBoxItem 的 Code 和原来的一样。所以才查了好久,来回测试。

最后才发现,和 ListBoxItem 的创建没关系。而是因为,这个 ListBox 我设置成了可以多选,但是,OnClick 里面读选中的条数,读到的是之前的。一个 ListBoxItem 选中的状态是 OnClick 之后才变化。为了这个,我用了一个 Timer,OnClick 仅仅是启动 Timer,然后 Timer 去读选中的条数。然后,将这个数字,显示在 ListBOx 的 Head Group 上面。

而我的翻页,需要 Clear 掉之前的条目。连带这个 Head 也被 Clear 掉了。然后,翻页是由手势控制的,手一划,先触发了 Timer,同时又 Clear 了 ListBox。然后 Timer 去写 Group Head 上面的文字,这时候里面根本没有 Gourp Head,于是闪退了。然后我在 Timer 里面加上 If Assigned(xxxx) 就没事了。
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2016-04-27 10:36:02 IP:64.183.xxx.xxx 訂閱
用以下這頁的方式比較能快速的查出是啥造成閃退!  英文的。但真的很有用呀!

http://developer.android.com/tools/debugging/debugging-studio.html

把寫好的app,attach 上去查。或使用 ddms。
------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2016-04-28 00:25:13 IP:118.169.xxx.xxx 未訂閱
感謝蕭大人在美國還要抽空幫忙, 有空會下載來測測看, 相信有幫助的
如果有 IOS 的更好了, 因為IOS閃退是比較嚴重的(在ipad2, ipad mini, iphone4, iphone5s 顏率都相當)
===================引 用 aftcast 文 章===================
用以下這頁的方式比較能快速的查出是啥造成閃退! 英文的。但真的很有用呀!

http://developer.android.com/tools/debugging/debugging-studio.html

把寫好的app,attach 上去查。或使用 ddms。
系統時間:2017-12-14 2:45:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!