• 0
antarey

Как убрать отладочную информацию из пакета приложения для Андроид?

Вопросы

Подскажите , реально ли уменьшить размер приложение и потребление ресурсов?

 

В сравнении с другими приложениями , написанными на других платформах, размер апк от обезьяны непомерно большой - 5 контролов и апк 14 метров.

На 4 ядерном THL с 2 гигами ОЗУ приложение загружается  заметно долго :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 ответа на этот вопрос

  • 0
По поводу размера:
Указанный размер (14Мб) явно не стандартен (5Мб :)), обычно приложение с контроллами весит не больше 5-7 Мб (зависит от количества контроллов и кода). В вашем случае, похоже, что в ресурсах вы используете большие картинки/видео или большую базу. Вроде как релиз версия приложения должна быть меньше по размеру.
 
Совет по поводу скорости: 
Все ресурсоёмкие операции старайтесь вынести в отдельный поток.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

по скорости :) где-то так же. - приложение работает нормально, загрузка чуть медленнее чем у еклипса  

По поводу размера все понятно, ето в принципе как и для винды. Катринок/музыки не кидал пока вообще, а не вру - две картинки 64/64 общим весом 2,5 Кб+база 34 кила.

Короче ничего нельзя сделать

 

По поводу релиз конфига - я юзаю ХЕ6 бета - там релиз только на гуглю плей , а если я хочу локально получить релиз?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

В блоке "Project Maneger" открываем "Build Configurations" и выбираем "Release". (правда, не знаю как там в XE6)

post-19-0-61250700-1392986217.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От Barbanel
      Здравствуйте!
      Подскажите пожалейста, устанавливаются ли какие-либо стандартные Define при компиляции приложения для Play Store?
      Понятно что можно установить свои дефайны, разные для дебага и релиза, но хочется знать, существуют ли стандартные.
      Спасибо, всем хорошего дня =)
    • От Alex7wrt
      Добрый день.
      Знаю, что на форуме есть несколько тем о том, как удалять объекты под Android и счетчике ссылок, однако использование рекомендаций оттуда мне пока не помогло.
      Суть вопроса: создаю свой класс

       
      type TRext =class(TRectangle) Text: TText; procedure RextMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure RextMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure RextMouseLeave(Sender: TObject); Constructor Create(AOwner: TComponent); override; Destructor Destroy; override; end; type TMyChoose = class Item1, Item2, Item3: TRext; Edits: TEdit; procedure ItemClick(Sender: TObject); procedure OnEditFocus(Sender: TObject; var ACanFocus: Boolean); Constructor Create(Form: TForm); Destructor Destroy; override; end; ..... constructor TRext.Create(AOwner: TComponent); begin inherited Create(AOwner); Text:=TText.Create(Self); Text.Parent:=Self; Text.Align:=TAlignLayOut.Client; Self.Text.OnMouseDown:=RextMouseDown; Self.Text.OnMouseUp:=RextMouseUp; Self.Text.OnMouseLeave:=RextMouseLeave; end; Destructor TRext.Destroy; begin Text.Release; Text:=nil; inherited; end; constructor TMyChoose.Create(Form: TForm); begin inherited Create; Item1:=TRextCreate(Form); Item1.Parent:=Form; Item1.Align:=tAlignLayout.MostLeft; Item2:=TRextCreate(Form); Item2.Parent:=Form; Item2.Align:=tAlignLayout.MostLeft; Item3:=TRextCreate(Form); Item3.Parent:=Form; Item3.Align:=tAlignLayout.MostLeft; Edits:=TEdit.Create(Form); Edits.Parent:=Form; Edits.Align:=tAlignLayout.MostLeft; ......... end; Destructor TMyChoose.Destroy; begin Item1.Release; Item1:=nil; Item2.Release; Item2:=nil; Item3.Release; Item3:=nil; Edits.Release; Edits:=nil; inherited; end; Под Windows все нормально работает и уничтожается. Под Android вызов Destroy у объекта типа TMyChoose не приводит ни к чему.
      Вместо Release и nil использовал также DisposeOf и Nil, а также FreeAndNil - результат аналогичный.
      Как правильно уничтожать составные объекты?
    • От alexbirukov
      Установил новую студию ради исправления одной ошибки, и наткнулся на другую, ещё более критичную.
       
      В общем и в новых и в старых проектах одинаковая ситуация. Если на форме имеются компоненты KinveyProvider (ParseProvider) и PushEvent, то в режиме Release - Application Store приложение запускается, но после сплэш скрина просто чёрный экран и ничего не происходит, приложение зависает. В режиме Debug всё отлично запускается и работает, Push приложения приходят. Все разрешения есть, даже больше, специально выставлял абсолютно все разрешение.
       
      В режиме отладки не запускается, приложение просто подвисает, отладчик ругается, что оно не отвечает. 
       
      Мучаюсь уже второй день, может кто сталкивался или знает куда копать, буду рад любому совету.
    • От Дениска
      Пустое приложение. У меня есть формы: А и B.
      А по кнопке создаёт и показывает B и сразу самоуничтожается:
       
      B := TB.Create(nil); B.Show; A.Free;   B в свою очередь делает обратное:   A := TA.Create(nil); A.Show; B.Free;   На Win32 платформе в диспетчере задач память по мере открытия форм не растёт. В iOS 6.1.1 iPhone 3 проследить память я не смог, но после 5-10 открытий форм приложение падает. Вероятнее всего растёт хип (heap).    Почему тогда не работает FREE?? Как правильно освободить память и уничтожить форму в iOS???   Я нашёл ответ. Если на форме есть картинки, то их нужно: Image1.Bitmap.Assign(nil);
    • От Kikoma
      Следующая ситуация:
       
      Есть база данных с полями: id, product_name, price, cart (корзина) - Думаю пояснять излишне.
       
      по условию cart>0 формируется запрос и заполняется TListBox кастомизированным Item-ом который содержит SpinBox. при изменении SpinBox вызывается процедура, которая вносит изменение в БД (cart) и высчитывает сумму в этом Item.
       
      Все работает, все хорошо, но...
      Задумал я что при SpinBox = 0, у меня этот TListBoxItem исчезал, для этого на изменение SpinBox если он равен 0, я запускаю процедуру формирования (Заполнения) этого TListBox заново.
       
      Вываливается ошибка Access ..to address XXX, при чем при пошаговой трассировки исключение вызывает FMX.Edit строка 3811 CustomEditBox.Change; в procedure TValueRangeCustomEditBox.DoAfterChange; (DELPHI XE6)
       
      т.е. моя процедура полностью отрабатывается (Заполняется новый список Item-ов) и возникает эта ошибка.
       
      При чем на 32-bit Windows все работает нормально, только на андроиде возникает это исключение, при чем приложение продолжает нормально функционировать.
       
      Если я правильно понимаю, то эта процедура DoAfterChange пытается что то сделать с объектом, которого уже нет.
       
      Это баг или я неправильно алгоритм построил?
       
       
    • От 97mik
      При деплое приложения пишет:
       
       
      Платформа: iOS.
      Что это означает и как исправить?
    • От la_coste
      Скажите, возможно ли уменьшить размер приложения? 
      Неужели приложение тянет за собой такой большой фрейм, что даже hello world весит ~25мб?!
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу